片段活动处理

时间:2011-12-30 00:57:56

标签: android android-fragments android-viewpager activitygroup

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

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

以下是我要创建的内容:

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

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

还有一些情况我希望能够隐藏顶部和底部栏以使主要内容区域全屏,还有一些情况我想要一个全屏显示的活动来直观地替换所有3个(例如访问邮件编辑器意图,联系人意图等。)

我已经能够将一个FragmentActivity放在一起,将应用程序分成顶部片段,由FragmentActivity控制的中间视图,以及底部片段,但这似乎不是最佳方法,因为片段不是活动他们自己并用新活动替换视图寻呼机将需要替换整个FragmentActivity本身。

到目前为止,实现此格式的最佳布局方法是什么(2.1+支持)。

谢谢, 詹姆斯

添加了当前代码:

main.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>

2 个答案:

答案 0 :(得分:2)

使用碎片。

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

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

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

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

答案 1 :(得分:0)

  

我在理解如何在屏幕上同时进行多项活动活动时遇到一些麻烦

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

  

我已经能够将一个FragmentActivity放在一起,将应用程序分成顶部片段,由FragmentActivity控制的中间视图,以及底部片段,但这似乎不是最佳方法,因为片段不是活动他们自己并用新活动替换视图寻呼机将需要替换整个FragmentActivity本身。

您描述的方法似乎很好。在ViewPager中为您的主要区域使用片段。使用Android支持包可以获得支持回到Android 1.6的片段支持。