2

我正在学习 Android 以移植我创建的 iOS 应用程序。无论是通过 ActivityGroup 还是 FragmentActivity,我都无法理解如何同时在屏幕上显示多个活动活动。ActivityGroup 已被弃用,但似乎是最好的方法。

在深入了解更多细节之前,我可以使用一些帮助来确定正确(或最佳)的方法。

这是我要创建的内容:

该应用程序应分为三个视觉部分: 1) Top 50dp 用于持续存在的动态横幅。2) 中间的主要内容区域,用于带有图标的 viewpager 仪表板,允许导航到其他活动并替换自身。3) 底部 30 dp 音乐播放器栏。

本质上,我希望广告栏和播放器栏独立于主要内容区域工作。例如,当在主要内容区域中按下按钮时,我希望将主要内容区域替换为新活动,例如曲目列表视图、网络视图、地图视图等。后退按钮将返回仪表板视图寻呼机的主要内容区域。

在某些情况下,我希望能够隐藏顶部和底部栏以使主要内容区域全屏显示,以及我希望全屏显示活动以在视觉上替换所有 3 个的情况(例如访问邮件作曲家意图、联系人意图等)

我已经能够组合一个 FragmentActivity 将应用程序分成顶部片段、由 FragmentActivity 控制的中间 viewpager 和底部片段,但这似乎不是最好的方法,因为片段本身不是活动并替换具有新活动的视图寻呼机将需要替换整个 FragmentActivity 本身。

直截了当,实现这种格式的最佳布局方法是什么(支持 2.1+)。

谢谢,詹姆斯

添加了当前代码:

主要的.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <fragment
        android:name="com.dmi.AnywhereArtist.AdFragment"
        android:layout_width="320dp"
        android:layout_height="50dp"
        android:id="@+id/ad_fragment" >
    </fragment>
    <android.support.v4.view.ViewPager
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:id="@+id/main_pager"
    android:layout_weight="100" 
    android:background= "#00aa00" />
    <fragment
        android:name="com.dmi.AnywhereArtist.PlayerFragment"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:id="@+id/player_fragment" >
    </fragment>
</LinearLayout>
4

2 回答 2

2

使用片段。

需要记住的重要一点是,Android 一次只允许一个 Activity 运行,即使屏幕上可以看到多个 Activity。

片段通过允许您采用模块化应用程序组件并将它们组合起来来解决这个问题,同时仍然将所有内容保留在单个 Activity 中。

您正在尝试做的正是 Fragments 的设计目的。

(要获得 2.1+ 的支持,请使用支持包: http: //developer.android.com/sdk/compatibility-library.html。不过,请记住,支持包不支持 MapFragments。)

于 2011-12-30T01:10:14.553 回答
0

我在理解如何同时在屏幕上显示多个活动活动时遇到了一些麻烦

那是因为你不应该这样做。从一开始这是一个糟糕的方法,现在没有必要了。请使用碎片。

我已经能够组合一个 FragmentActivity 将应用程序分成顶部片段、由 FragmentActivity 控制的中间 viewpager 和底部片段,但这似乎不是最好的方法,因为片段本身不是活动并替换具有新活动的视图寻呼机将需要替换整个 FragmentActivity 本身。

您描述的方法似乎很好。ViewPager在您的主要区域使用片段。使用 Android Support 包来获得可追溯到 Android 1.6 的片段支持。

于 2011-12-30T01:08:58.467 回答