检查片段是否在framelayout中显示或不在android中?

时间:2013-08-26 13:24:42

标签: android fragment android-framelayout

大家好朋友我在movies.xml中有两个framelayout,即容器 detail_screen 。容器中将添加 movies.xml ,其中包含listview,并且在detail_screen中将有可扩展的列表视图,名为 movie_details.xml 。现在想以编程方式检查detail_screen已经是片段呈现或未呈现。如果只是想删除该片段。我通过follwing做了它的工作正常。

    if (getSupportFragmentManager().findFragmentByTag("MyFragment") != null) {
        getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentByTag("MyFragment")).commit();
}

但是有没有其他方法可以通过编程方式找到是否在android中的帧布局中呈现片段。提前感谢

2 个答案:

答案 0 :(得分:11)

我创建了解决方案如下。在将任何片段添加到details_screen之前,只需检查是否已呈现片段然后弹出它然后将添加新片段。

if (getSupportFragmentManager().findFragmentById(R.id.detail_screen) != null) {

        getSupportFragmentManager().popBackStack();

            } //to do add fragment

希望它能奏效。

答案 1 :(得分:8)

使用findFragmentByTag()findFragmentById()方法来查找它。如果返回的实例不为null,则存在片段。此外,您可以使用Fragment.isInLayout()方法检查片段是使用<fragment>标记在布局中定义还是以编程方式添加。