Android 从活动中获取嵌套片段
我有一个包含片段F的活动A。在片段F的xml文件中,我有一个名为“container”的框架布局。在这个容器中,每当需要的时候,我都会加载片段X和Y 现在,有没有一种方法可以让我确定片段F当前显示的是X和Y之间的哪一个 在活动A中,我想实现Android 从活动中获取嵌套片段,android,android-fragments,fragment,Android,Android Fragments,Fragment,我有一个包含片段F的活动A。在片段F的xml文件中,我有一个名为“container”的框架布局。在这个容器中,每当需要的时候,我都会加载片段X和Y 现在,有没有一种方法可以让我确定片段F当前显示的是X和Y之间的哪一个 在活动A中,我想实现 onBackPressed(){ if(F is displaying X) super.onBackPressed(); else //Y is currently displayed //replace f
onBackPressed(){
if(F is displaying X)
super.onBackPressed();
else //Y is currently displayed
//replace fragment Y with fragment X
我想我可能需要打电话
getSupportFragmentManager().findFragmentByTag("F"). ??
这就是我如何替换X和Y的方法
public void showFragment(Fragment f){
getChildFragmentManager().beginTransaction().replace(R.id.container, f).commit();
currentChildFragment = f;
}
谁能给我指出正确的方向吗?非常感谢 如果我没弄错的话,你可以使用Activity->Fragment和container,在这个container中,你可以在X和Y之间放置/替换片段。为什么要使用Fragment(F)级别 无论如何,您要用id替换片段,这样就可以用id检索当前片段 该代码可以包含为F片段的一个方法(正如我们使用getChildFragmentManager())。要将该信息发送回活动本身,必须找到F片段(它必须有一个id)并调用该方法,在该方法中检查显示了哪个片段(X或Y)。如果你删除F级的片段,它可以被简化,但是我想你可以在其他地方重用相同的片段
Fragment fragment = getChildFragmentManager().findFragmentById(R.id.container);
if(fragment != null){
if(fragment instanceof FragmentX) (..)
else (..)
}