在上一个活动之上显示新活动

时间:2011-12-14 11:22:01

标签: android android-layout android-activity

enter image description here

我有一个活动A,它有一个“向下”按钮(见上图)。当我按下此按钮时,我想在活动A的顶部启动活动B,因此底部的一些活动A仍然可见。活动B可以反过来启动一些其他活动(C,D等)但是它们只显示在与B相同的屏幕区域内。任何人都知道这是否可能以及我如何能够实现它?

  

修改:我知道我可以将android:theme="@android:style/Theme.Dialog"添加到我的活动清单中,但据我所知,这会显示在屏幕中央,而不是我可以调整大小我喜欢它。如果我错了,请纠正我......

2 个答案:

答案 0 :(得分:5)

这是应该在活动a

之上的活动的xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#00000000" >
     <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0"
        android:layout_weight="0.6"
        android:background="#000000" >
     //use this for your new activity contents
     </LinearLayout>
     <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0"
        android:layout_weight="0.4"
        android:background="#00000000" >
     //this is empty
     </LinearLayout>
</LinearLayout>

现在在清单中,用于活动B,C,......等:

    <activity
        android:label="@string/app_name"
        android:name=".ActivityB"
        android:theme="@style/Theme.Transparent"
        android:screenOrientation="portrait" >
values / styles.xml 中的

<?xml version="1.0" encoding="utf-8"?>  
<resources>
    <style name="Theme.Transparent" parent="android:Theme.NoTitleBar">  
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@drawable/theme_transparent</item>
    </style>
</resources>  

最后在 drawable / theme_transparent.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#00000000" ></solid>
</shape>

答案 1 :(得分:3)

您需要使用的是Fragments.

碎片可用于填充屏幕的一部分,同时完全在另一个屏幕上执行其他操作。 在您的示例中,您可以创建包含两个Fragments的主活动。一个Fragment控制“A活动”,另一个控制“B活动”,其他控制“B活动”。 通过按下按钮将“B活动”区域中的当前Fragment替换为另一个,您可以实现您正在寻找的行为。至少,这就是我在我的应用程序中所做的,包含主要内容区域和音乐播放器。当主要内容发生变化时,音乐播放器会保持原位。

可悲的是,我现在无法提供任何示例代码,但这里有一个可以帮助您入门的教程:

如果您使用的Android版本低于3.0,则可以使用兼容性软件包。

http://developer.android.com/sdk/compatibility-library.html

http://mobile.tutsplus.com/tutorials/android/android-compatibility-working-with-fragments/