如何在底部导航中使用设置屏幕外页面限制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在底部导航中使用设置屏幕外页面限制相关的知识,希望对你有一定的参考价值。
我正在使用带有5个片段的导航底部。
每个片段都会进行HTTP调用并下载内容,但在替换片段时,视图会被销毁并再次下载。
在我的搜索中,我发现我应该使用setOffscreenPageLimit这个方法,但我不使用viewpager。
我怎么能实现这样的东西?
答案
而不是替换片段,将片段添加到片段管理器并显示/隐藏它们。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_page);
addFragmentsToManager();
}
private void addFragmentsToManager() {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out);
fragmentTransaction.add(R.id.flContent, tripFragment,
tripFragment.getClass().getSimpleName());
fragmentTransaction.add(R.id.flContent, notificationFragment,
notificationFragment.getClass().getSimpleName());
fragmentTransaction.add(R.id.flContent, searchFragment,
searchFragment.getClass().getSimpleName());
fragmentTransaction.add(R.id.flContent, profileFragment,
profileFragment.getClass().getSimpleName());
fragmentTransaction.hide(tripFragment);
fragmentTransaction.hide(notificationFragment);
fragmentTransaction.hide(searchFragment);
fragmentTransaction.hide(profileFragment);
fragmentTransaction.commit();
}
private void changeTab(int position) {
Fragment fragment;
switch (position) {
fragment = .....// get framgnet from position
}
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.fade_in,
R.anim.fade_out);
fragmentTransaction.hide(prvFragment);
fragmentTransaction.show(fragment).commit();
prvFragment = fragment;
}
以上是关于如何在底部导航中使用设置屏幕外页面限制的主要内容,如果未能解决你的问题,请参考以下文章
在“设置”片段中夸大类PreferenceScreen的错误