我正在 xml 文件中添加一个 fragment ,但我无法在后台堆栈中找到该 fragment 的实例。
下面是我的 xml 代码
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragOneContainer"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<fragment class="com.myproject.fragments.fragmentname"
android:id="@+id/frag"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="inspectionSearch">
</fragment>
</FrameLayout>
下面是我用来获取 fragment 列表的代码
FragmentManager fragmentManager = getFragmentManager();
List<Fragment> fragmentList = fragmentManager.getFragments();
for(int i=0;i<fragmentList.size();i++){
Log.d(TAG,"Fragment at "+i+" = "+fragmentList.get(i).getClass().getName());
}
注意:我在 fragOneContainer 中动态添加的 fragment 出现在后台堆栈中。
如何获取我在 xml 中添加的 fragment 的实例?
最佳答案
从 xml 添加的 fragment 不会存储在 backstack 中。要点是,如果您通过 xml 添加 fragment ,它是静态分配的,您无法替换它。如果你想要backstack,那么通过java(或kotlin)动态添加这个 fragment
关于java - Backstack中找不到从xml添加的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55508483/