如何在片段转换中正确添加多个片段?

Mar*_*rio 5 layout transactions views fragment

我最近在这里问了一个关于片段的问题:

 http://stackoverflow.com/questions/12443312/listview-not-populating-or-webview-taking-up-entire-screen
Run Code Online (Sandbox Code Playgroud)

在经历了很多混乱后,我发现了问题所在,但经过更多的愚弄和研究(其中正确的代码看起来与我的相同),我无法弄清楚我的问题是什么.

创建完所有内容后,我发现只有最后一个片段添加到事务中才可见.这是我添加它们的代码:

    FragmentManager manager = getFragmentManager();
    FragmentTransaction trans = manager.beginTransaction();
    UrlListFragment urlfragment = new UrlListFragment();
    MyWebFragment webfragment = new MyWebFragment();
    trans.add(R.id.fragment_container, urlfragment, "my_url_fragment");
    trans.add(R.id.fragment_container, webfragment, "my_web_fragment");
    trans.commit();
Run Code Online (Sandbox Code Playgroud)

这是我的主要xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者可以做些什么,以便正确添加两个片段并且可以正确看到?

Chr*_*s.D 6

不幸的是,你不能以这种方式使用片段,你需要每个容器只使用一个片段.无论如何,它将达到相同的视觉布局.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
    android:id="@+id/fragment_container1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</FrameLayout>
<FrameLayout
    android:id="@+id/fragment_container2"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

FragmentManager manager = getFragmentManager();
FragmentTransaction trans = manager.beginTransaction();
UrlListFragment urlfragment = new UrlListFragment();
MyWebFragment webfragment = new MyWebFragment();
trans.add(R.id.fragment_container1, urlfragment, "my_url_fragment");
trans.add(R.id.fragment_container2, webfragment, "my_web_fragment");
trans.commit();
Run Code Online (Sandbox Code Playgroud)