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

时间:2017-07-22 17:02:56

标签: java android android-fragments android-activity onbackpressed

如何检查片段在Activity OnBackpressed

中可见

我想检查用户在Searchfragment中单击后退按钮时我想设置OnBackpressed正在运行,但是如果用户在OtherFragment中单击后退按钮我想设置OnBackpressed没有运行。

我在活动中尝试这个不起作用

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

            }
        });

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

首先,当你声明这样的事情时:

SearchFragment searchFragment = new SearchFragment();

然后致电

searchFragment.isVisible()

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

我曾尝试使用方法isVisible(),但这并不完全准确,至少不适用于我的情况。我想出的是检查容器中的顶部片段如下:

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