java - 如何检查 fragment 在 Activity OnBackpressed 中是否可见

标签 java android android-fragments android-activity onbackpressed

如何检查 fragment 在 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()

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

我曾经尝试使用方法isVisible(),但它并不完全准确,至少不适合我的情况。我想出的是检查容器中的顶部 fragment ,如下所示:

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

关于java - 如何检查 fragment 在 Activity OnBackpressed 中是否可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45257124/

相关文章:

java - 在java中生成随机双数的最快方法

java - 黑莓中的对象选择字段

android - 使用 .getInputStream() 时找不到文件异常

android - 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

java - 相同的 fragment 出现在所有选项卡中

android - DailogFragment - getArguments/setArguments - 为什么要在包中传递参数?

java - 在 fragment 中使用上下文

JavaFX 使用 fxml 打开新窗口问题

java - 如果已安装,则无法重新运行 Java JPackage 安装程序,第二次将在没有警告的情况下退出

android - 从 android 发送 oauth token 导致 KeyNotFoundException