android - 如何在单个选项卡内管理多个 fragment

标签 android tabs android-fragments actionbarsherlock

我想在单个选项卡中使用多个 fragment 。我的选项卡 Activity 扩展 SherlockFragmentActivity

现在我在 onTabChanged() 方法中为第一个选项卡添加第一个 fragment 。我从第一个选项卡的第一个 fragment 中替换了另一个 fragment 。但是当我转到第二个选项卡然后再次重新打开第一个选项卡时,不会保持第一个选项卡的状态并且第一个 fragment 变得可见而不是第一个选项卡的第二个 fragment 。

我需要有关如何在单个选项卡中维护 fragment 的权益以及如何在单个选项卡中弹出现有 fragment 前端的帮助。

有人知道吗?

最佳答案

如果您使用两个选项卡,则必须为每个选项卡分别维护两个 fragment ,即 tab1 的 FragmentA 和 tab2 的 FragmentB 以及 FragmentA 的 xmls,FragmentB 应该有 FregmentTransaction 的 FrameLayout。

FragmentA 的 xml 即 frag_a.xml :

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentA_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >

</FrameLayout>

FragmentB 的 xml 即 frag_b.xml :

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentB_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >

</FrameLayout>

对于 Tab1,始终使用 R.id.fragmentA_container 进行交易。即从第一个选项卡中的第一个 fragment (FragmentA) 中替换另一个 fragment 。像下面的代码

在 fragment A中:

Fragment fragment = new YourFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
getSupportFragmentManager().popBackStack();
fragment.setArguments(null);
ft.replace(R.id.fragmentA_container, fragment);
ft.commit();

对于 Tab2,始终使用 R.id.fragmentB_container 进行交易。即从第二个选项卡中的 secondfragment(FragmentB) 中替换另一个 fragment 。像下面的代码

在 fragment B中:

Fragment fragment = new YourFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
getSupportFragmentManager().popBackStack();
fragment.setArguments(null);
ft.replace(R.id.fragmentB_container, fragment);
ft.commit();

关于android - 如何在单个选项卡内管理多个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17853687/

相关文章:

android - 如何从另一个 fragment 打开一个新 fragment ?

java - android bad token异常无法在WindowManager服务中添加窗口

安卓和 iOS : How to develop for both?

java - Quickblox 公共(public)群聊天记录

java - 无法使用 Release Apk 登录 Google 和 Facebook

android - 如何将 Android fragment 添加到我的 FragmentActivity?

android - 新 Activity 、选项卡、新应用程序 : when using which

jquery - Bootstrap 4 : Dropdown Navtab does not work

css - 如何将单个 md-tab 元素右对齐

java - 我对 getActivity 方法做错了什么?