Android Fragments Android:fragment.isInLayout()不工作

yyhrrdl8  于 2023-05-29  发布在  Android
关注(0)|答案(1)|浏览(107)

如何检查我的片段是否在当前FrameLayout中?我试过使用isInLayout()如下:

TertanggungPolis tertanggungPolis = (TertanggungPolis) getFragmentManager().findFragmentById(R.id.frame_container);
if (tertanggungPolis.isInLayout()) {
    // doing something here
}

但似乎这个代码对我不起作用。我的代码有问题吗?

ahy6op9u

ahy6op9u1#

你是想看看碎片是否可见吗如果是这样,则有一个isVisible()方法可用。

TertanggungPolis tertanggungPolis=(TertanggungPolis)getFragmentManager().findFragmentById(R.id.frame_container);
    if(tertanggungPolis.isVisible()){
    //doing something here
    }

如果你真的想知道这个片段是否是你的FrameLayout的一部分,请发布xml。根据文档,如果布局xml文件中有fragment节点,则isInLayout()肯定为true,其中该节点位于FrameLayout的层次结构中。
isInLayout()如果布局通过标记作为Activity视图层次结构的一部分包含,则返回true。当通过标记创建片段时,这将始终为真,除非从先前状态恢复旧片段并且它不出现在当前状态的布局中。

相关问题