fer*_*988 10 android android-linearlayout android-fragments
我正在使用具有垂直方向的LinearLayout来列出片段.我以编程方式将片段添加到容器中,如下所示:
FragmentTransaction ft = fragmentManager.beginTransaction();
Fragment fragment1 = new Fragment();
ft.add(R.id.llContainer, fragment1);
Fragment fragment2 = new Fragment();
ft.add(R.id.llContainer, fragment2);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
但它只显示第一个片段.为什么?
yin*_*ash 19
你可以有一个多个片段LinearLayout.
根据文件,
如果要将多个片段添加到同一容器中,则添加它们的顺序将决定它们在视图层次结构中的显示顺序
您的代码存在的问题是,由于您未指定片段标记,因此默认为容器ID.由于两个事务的容器ID相同,因此第二个事务替换了第一个片段,而不是将它分别添加到容器中.
要做你想做的事,请使用以下内容:
FragmentTransaction ft = fragmentManager.beginTransaction();
Fragment fragment1 = new Fragment();
ft.add(R.id.llContainer, fragment1, "fragment_one");
Fragment fragment2 = new Fragment();
ft.add(R.id.llContainer, fragment2, "fragment_two");
ft.commit();
Run Code Online (Sandbox Code Playgroud)
我想你必须在你的布局中为每个片段定义separe容器.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="vertical">
<FrameLayout
android:id="@+id/content_secondary"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
</FrameLayout>
<FrameLayout
android:id="@+id/content_primary"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" >
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9535 次 |
| 最近记录: |