如何检查片段在 Activity OnBackpressed 中是否可见

How to check fragment is visible in Activity OnBackpressed

如何检查片段在 Activity OnBackpressed

中是否可见

我想检查当用户点击 Searchfragment 中的后退按钮时我想设置 OnBackpressed 是 运行 ,但是如果用户点击 OtherFragment 中的后退按钮我想设置 OnBackpressed 不是 运行.

我在 Activity 中尝试了这个,但它不起作用

 btn_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SearchFragment searchFragment = new SearchFragment();
                if (searchFragment.isVisible()){
                    onBackPressed();
                }

            }
        });

感谢您的帮助!

首先,当你这样声明时:

SearchFragment searchFragment = new SearchFragment();

然后调用

searchFragment.isVisible()

这显然 return false 因为您甚至没有将它添加到容器中。您需要做的是检索您已添加的片段实例并检查其状态。

我曾经尝试过使用 isVisible() 方法,但它并不完全准确,至少对我而言不是这样。我想到的是检查容器中的顶部片段,如下所示:

Fragment fragment = getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment_container);
if(fragment instance of SearchFragment) //means your visible fragment is the SearchFragment
    onBackPressed();