【问题标题】:How to check fragment is visible in Activity OnBackpressed如何检查片段在 Activity OnBackpressed 中是否可见
【发布时间】:2017-07-22 17:02:55
【问题描述】:

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

我想检查用户点击我想设置 OnBackpressed 的 Searchfragment 中的返回按钮何时运行,但如果用户点击 OtherFragment 中的返回按钮我想设置 OnBackpressed 没有运行。

我在 Activity is not work 中尝试这个

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

            }
        });

感谢您的帮助!

【问题讨论】:

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


    【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      • 2012-10-12
      • 1970-01-01
      相关资源
      最近更新 更多