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

Sug*_*n S 6 android fragment android-framelayout

喜的朋友我在movies.xml即两个的FrameLayout 容器,detail_screen.在集装箱将增加movies.xml包含列表视图,并在detail_screen将有扩张的ListView称为 movie_details.xml.现在想在detail_screen编程检查已经呈现片段或not.if呈现只是想删除该片段.我通过follwing和它的工作正常.

    if (getSupportFragmentManager().findFragmentByTag("MyFragment") != null) {
        getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentByTag("MyFragment")).commit();
}
Run Code Online (Sandbox Code Playgroud)

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

Sug*_*n S 12

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

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

        getSupportFragmentManager().popBackStack();

            } //to do add fragment
Run Code Online (Sandbox Code Playgroud)

希望它会奏效.


ser*_*nka 8

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