kik*_*ike 5 android android-fragments fragmentmanager
为了在我的应用程序中重用一些片段,我需要知道哪个片段是后端堆栈中的第二个片段.
为了做到这一点我正在使用getFragmentManager().getFragments(),它显示以下错误(但工作!)
FragmentManager.getFragments只能在同一个库组中调用(groupId = com.android.support)
使用安全吗?我可以通过另一种方法获得相同的结果吗?
这是代码:
public Fragment getCallerFragment(){
List<Fragment> fragments = getFragmentManager().getFragments();
return fragments.get(fragments.size()-2);
}
Run Code Online (Sandbox Code Playgroud)
小智 8
如果我们将两个答案放在一起,您可以将TAG添加到您的片段并使用此方法获取之前的片段名称:
private String getCallerFragment(){
FragmentManager fm = getFragmentManager();
int count = getFragmentManager().getBackStackEntryCount();
return fm.getBackStackEntryAt(count - 2).getName();
}
Run Code Online (Sandbox Code Playgroud)
使用该方法获取backStack中的计数数
getBackStackEntryCount()
使用此方法获取片段
getBackStackEntryAt(int索引)
你也可以做类似的事情
FragmentManager fm = getFragmentManager();
for(int entry = 0; entry < fm.getBackStackEntryCount(); entry++){
Log.i(TAG, "Found fragment: " + fm.getBackStackEntryAt(entry).getId());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2932 次 |
| 最近记录: |