选择新选项后片段内容保持不变
Contents of fragment remain the same after selecting a new option
我正在实施一个 Android 项目,其中根导航是 DrawerLayout
。当在抽屉中 selected 任何选项时,会根据选项 selected 显示不同的选项卡。我使用 this 教程实现了选项卡。但是,当我 select 一个不同的选项时,选项卡的标题和名称会发生变化,但内容仍然来自加载的初始选项卡。
每个选项卡都有自己的片段。我可能做错了什么?
这是我 select 注册选项的屏幕截图,新选项卡名称反映出来,但内容相同:
设置ViewPager
和TabLayout
的一些代码:
ViewPagerAdapter adapter = new ViewPagerAdapter((getSupportFragmentManager()));
//find the elements that will hold the tabs
viewPager = (ViewPager) findViewById(R.id.viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
//some switch case statements to add fragments to the adapter here
//depending on what has been clicked in the nav drawer
switch (selectedDrawerOption) {
case R.string.drawer_registration:
adapter.addFrag(new RegistrationFragment(), AppConst.TAB_PROOF);
adapter.addFrag(new RegistrationFragment(), AppConst.TAB_STATUS);
break;
case R.string.drawer_news:
adapter.addFrag(new FragmentNews(), AppConst.TAB_CAMPUS);
adapter.addFrag(new FragmentNews(), AppConst.TAB_SUBJECT);
break;
}
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
在我填充适配器的地方之间有一个 switch case 语句。
您没有将片段添加到选项卡。在该代码中,您所做的只是更改选项卡,而不是 viewpager 选项卡的内容。
在此 answer 中建议 ViewPagerAdapter
应该 extend
FragmentStatePagerAdapter
而 不 FragmentPagerAdapter
这似乎解决了一些问题我现在可以单击 DrawerLayout
上的另一个项目并且选项卡名称和内容可以更改。
我正在实施一个 Android 项目,其中根导航是 DrawerLayout
。当在抽屉中 selected 任何选项时,会根据选项 selected 显示不同的选项卡。我使用 this 教程实现了选项卡。但是,当我 select 一个不同的选项时,选项卡的标题和名称会发生变化,但内容仍然来自加载的初始选项卡。
每个选项卡都有自己的片段。我可能做错了什么?
这是我 select 注册选项的屏幕截图,新选项卡名称反映出来,但内容相同:
设置ViewPager
和TabLayout
的一些代码:
ViewPagerAdapter adapter = new ViewPagerAdapter((getSupportFragmentManager()));
//find the elements that will hold the tabs
viewPager = (ViewPager) findViewById(R.id.viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
//some switch case statements to add fragments to the adapter here
//depending on what has been clicked in the nav drawer
switch (selectedDrawerOption) {
case R.string.drawer_registration:
adapter.addFrag(new RegistrationFragment(), AppConst.TAB_PROOF);
adapter.addFrag(new RegistrationFragment(), AppConst.TAB_STATUS);
break;
case R.string.drawer_news:
adapter.addFrag(new FragmentNews(), AppConst.TAB_CAMPUS);
adapter.addFrag(new FragmentNews(), AppConst.TAB_SUBJECT);
break;
}
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
在我填充适配器的地方之间有一个 switch case 语句。
您没有将片段添加到选项卡。在该代码中,您所做的只是更改选项卡,而不是 viewpager 选项卡的内容。
在此 answer 中建议 ViewPagerAdapter
应该 extend
FragmentStatePagerAdapter
而 不 FragmentPagerAdapter
这似乎解决了一些问题我现在可以单击 DrawerLayout
上的另一个项目并且选项卡名称和内容可以更改。