mom*_*oja 2 android fragment android-fragments
我有一个包含Fragment F的Activity A.在Fragment F的xml文件中,我有一个名为"container"的FrameLayout.在这个容器中,我需要时加载片段X和Y.
现在,有没有办法让我确定片段F当前正在显示X和Y之间的哪个?
在活动A中,我想实现
onBackPressed(){
if(F is displaying X)
super.onBackPressed();
else //Y is currently displayed
//replace fragment Y with fragment X
Run Code Online (Sandbox Code Playgroud)
我想我可能需要打电话
getSupportFragmentManager().findFragmentByTag("F"). ??
Run Code Online (Sandbox Code Playgroud)
这就是我替换X和Y的方式
public void showFragment(Fragment f){
getChildFragmentManager().beginTransaction().replace(R.id.container, f).commit();
currentChildFragment = f;
}
Run Code Online (Sandbox Code Playgroud)
谁能指出我正确的方向?非常感谢!
如果我做对了,你有Activity - > Fragment with container,在那个容器中,你在X和Y之间放置/替换片段.为什么你有片段(F)级别?
无论如何,您正在通过id替换片段,因此您可以使用findFragmentById检索当前片段
Fragment fragment = getChildFragmentManager().findFragmentById(R.id.container);
if(fragment != null){
if(fragment instanceof FragmentX) (..)
else (..)
}
Run Code Online (Sandbox Code Playgroud)
该代码可以作为F片段的方法包含(因为我们使用getChildFragmentManager()).要将该信息发送回活动本身,必须找到F片段(它必须具有id)并调用该方法来检查显示哪个片段(X或Y).如果你删除片段F级别可以简化,但我猜你在其他地方重用了相同的片段.
| 归档时间: |
|
| 查看次数: |
2004 次 |
| 最近记录: |