在我的 StartActivity 中,BottomNavigationBar 侦听器具有以下设置:
private GuideFragment guideFragment = new GuideFragment();
private MapFragment mapFragment = new MapFragment();
private MoreFragment moreFragment = new MoreFragment();
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.navigation_guide:
selectedFragment = guideFragment;
break;
case R.id.navigation_map:
selectedFragment = mapFragment;
break;
case R.id.navigation_more:
selectedFragment = moreFragment;
break;
}
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.content, selectedFragment);
transaction.commit();
return true;
}
};
正如我上面提到的,我想防止所选片段总是重新加载源/视图。我在片段中尝试了一些类似的东西:
if (rootView == null)
inflater.inflate...
但是这些片段仍然重新创建视图并加载(在我的情况下)新的 webresources。
我读到了 PageView 可以提供帮助的东西,尤其是
offScreenPageLimit
应该做魔术。
我的主要问题是我应该在哪里实现 PageViewer - 在我的 StartActivity 中是否可能?或者我可以用其他方式解决问题吗?