【发布时间】:2019-11-01 20:25:21
【问题描述】:
我有片段 obj 和 FrameLayout,如果可以的话,我也可以完成我的逻辑:
获取我的片段 containerViewId
或
看看片段在哪个 FrameLayout 中?
【问题讨论】:
标签: android android-fragments android-framelayout fragment-backstack
我有片段 obj 和 FrameLayout,如果可以的话,我也可以完成我的逻辑:
获取我的片段 containerViewId
或
看看片段在哪个 FrameLayout 中?
【问题讨论】:
标签: android android-fragments android-framelayout fragment-backstack
这样做:
getSupportFragmentManager().findFragmentById(R.id.your_frame_layout);
它返回框架布局中的片段
更新
获取您在框架布局中添加的所有片段(不是所有框架布局):
FragmentManager mFragmentManager = getSupportFragmentManager();
mFragmentManager.beginTransaction().add(R.id.your_frame_layout, /*your Fragment*/).commit();
//get all fragments that you added to mFragmentManager
List<Fragment> fragmentList = mFragmentManager.getFragments();
【讨论】:
getSupportFragmentManager().getFragments() 获得所有的列表,它会返回一个列表Fragment.
FragmentManager mFragmentManager = getSupportFragmentManager() 现在你可以在你的框架布局上使用mFragmentManager。对于获取所有片段mFragmentManager.getFragments(),它仅返回您使用mFragmentManager添加的片段
getId() 返回 Fragment 添加到的 FrameLayout 的 id,允许您过滤 Fragment 列表。
(FrameLayout) fragment.getView().getParent() 试试看。它可能会为您提供该片段附加到的框架布局。
【讨论】: