如何检查片段在 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();
如何检查片段在 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();