我有三个标签标签布局。我想用每个旧片段上相应按钮点击的新片段替换每个片段中的片段。我认为,为了做到这一点,我必须包括一个容器(最好是framelayout),我可以替换它来显示新的片段。我是这样做的: 活动xml
<android.support.v4.view.ViewPager
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment"
android:layout_below="@id/appbar"
>
<fragment
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/tabA"
android:name="com.moodoff.Moods"
tools:layout="@layout/fragment_moods" />
</FrameLayout>
现在我创建了一个动态片段,它将替换我活动的onCreateView方法中的第一个标签,如下所示:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_all_tabs, container, false);
Log.e("ALLTABS","I am called again..");
/*mViewPager.setCurrentItem(Start.switchToTab);
mViewPager.getAdapter().notifyDataSetChanged();*/
FragmentTransaction transaction = getFragmentManager().beginTransaction();
Fragment newFragment = Moods.newInstance("replacedA","b");
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack if needed
//transaction.replace(R.id.allmoods, newFragment);
transaction.replace(R.id.fragment, newFragment);
transaction.addToBackStack("mainA");
//transaction.commitAllowingStateLoss();
return rootView;
}
现在我做的是从我原来的片段按钮单击我在同一个容器中加载新片段,它的工作正常。但问题是在第二个和第三个选项卡中,显示了相同的片段,并且我没有看到其他两个片段中的其他两个选项卡。 我该如何解决这个问题?