【问题标题】:Adding multiple fragments in same fragment transaction在同一个分片事务中添加多个分片
【发布时间】:2017-02-16 04:36:48
【问题描述】:

当我将多个片段添加到 FragmentTransaction 并在之后提交时,仅添加最后一个片段。

getFragmentManager().beginTransaction().add(R.id.main_container,PropertyListFragment.newInstance()).addToBackStack(null)
                        .add(R.id.main_container, BlankFragment.newInstance("dfghj","fghj")).addToBackStack(null)
                        .add(R.id.main_container,PropertyListFragment.newInstance()).addToBackStack(null)
                        .add(R.id.main_container, BlankFragment.newInstance("dfghj","fghj")).addToBackStack(null)
                        .commit();

Backstack 计数也是 1。

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    您不能以这种方式使用片段,每个容器只需要使用一个片段。 检查这个: How do I properly add multiple fragments to a fragment transition?

    【讨论】:

      【解决方案2】:

      以上答案是对的。 您不能以这种方式使用片段,每个容器只需要使用一个片段,但我在这里给了您一些帮助。 您需要在 XML FrameLayout 为每个 Fragment 定义类似这样的内容。

      <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_1"
          android:layout_width="match_parent"
          android:layout_height="match_parent" >
      </FrameLayout>
      <FrameLayout
          android:id="@+id/fragment_2"
          android:layout_width="match_parent"
          android:layout_height="match_parent" >
      </FrameLayout>
      </LinearLayout>
      

      而在Fragment 中你需要这样定义。

      FragmentManager manager = getFragmentManager();
      FragmentTransaction trans = manager.beginTransaction();
      ListFragment listFragment = new ListFragment();
      WebFragment webFragment = new WebFragment();
      trans.add(R.id.fragment_1, listFragment, "list_fragment");
      trans.add(R.id.fragment_2, webFragment, "web_fragment");
      trans.commit();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多