如何解决如何在底部导航中使用查看寻呼机
我想在View Pager
中将Fragment
创建为Bottom Navigation
(实际上是fragment to fragment
),但是遇到了这个问题:
click here to see the problem view
如您所见,View Pager
会在第一次正确加载,但下次不会正确加载。
这是我设置的BottomNavigation活动:
public class MainActivity extends AppCompatActivity {
NavController navController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView navView = findViewById(R.id.nav_view);
navController = Navigation.findNavController(this,R.id.nav_host_fragment);
NavigationUI.setupWithNavController(navView,navController);
}
然后在其中设置视图寻呼机:
public View onCreateView(@NonNull LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
super.onCreateView(inflater,container,savedInstanceState);
View root = inflater.inflate(R.layout.fragment_home,false);
//view pager
SectionsPagerAdapter sectionsPagerAdapter =
new SectionsPagerAdapter(getContext(),requireActivity().getSupportFragmentManager());
viewPager = root.findViewById(R.id.home_viewpager);
viewPager.setAdapter(sectionsPagerAdapter);
//setup tabs
tabs = root.findViewById(R.id.home_tabs);
tabs.setupWithViewPager(viewPager);
//toolbar
Toolbar toolbar = root.findViewById(R.id.home_toolbar);
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
return root;
}
和View Paager的适配器:
public class SectionsPagerAdapter extends FragmentPagerAdapter {
@StringRes
private static final int[] TAB_TITLES = new int[]{R.string.tab_text_daily,R.string.tab_text_weekly};
private static final Fragment[] pageInstances = new Fragment[]{
DailyReminderListFragment.newInstance(),DailyReminderListFragment.newInstance()
};
private final Context mContext;
public SectionsPagerAdapter(Context context,FragmentManager fm) {
super(fm,BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
mContext = context;
}
@NonNull
@Override
public Fragment getItem(int position) {
return pageInstances[position];
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mContext.getResources().getString(TAB_TITLES[position]);
}
@Override
public int getCount() {
return pageInstances.length;
}
public static Fragment getPageInstance(int position) {
return pageInstances[position];
}
如何修复它?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。