如何在活动中创建叠加视图

时间:2013-10-13 05:37:16

标签: android

我有一个要求,我有一个活动,显示像Facebook提要的项目列表,当点击其中一个列表项目的按钮时,一个对话框必须弹出,它将显示该项目的评论。

我正在查看文档,发现我们必须动态创建DialogFragment来实现这一目标。如果这是正确的方法,请提供建议。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:16)

您实际上不必使用Dialog。我想当你想要向用户显示简单的视图或只是警告/确认时(通常使用AlertDialog),对话框更合适。

对于你的情况,我想最好的方法是在你的Activity上有一个FrameLayout,你的主要布局元素的兄弟,并在你想要在你的主Activity的布局上显示这样的弹出窗口时添加一个Fragment。只要将片段的视图放在活动的根布局元素之后,片段就会显示在主布局的顶部,作为叠加层。 e.g:

<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="vertical">
        <!-- Activity's main layout here -->
    </LinearLayout>

    <FrameLayout android:id="@+id/overlay_fragment_container"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"/>
</merge>

然后在您想要显示您执行的片段时调用您的活动:

FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
        .add(R.id.overlay_fragment_container, yourFragment)
        .commit();

希望它有所帮助:)运气!