我使用TabLayout
+ ViewPager
来显示几个选项卡。根据服务器响应,我想要创建两种可能的方案:第一个中有三个选项卡,第二个中只有两个,即“删除”位置0中的选项卡。处理多种场景的TabLayout
由于我正在'在第一个选项卡中,所有依赖位置执行与某个特定片段相关的任何方法都变得过时,并且很可能会通过instanceof
检查。
例如,这是FragmentStatePagerAdapter
getItem
,它不会在瞬间处理第二个场景:
@Override
public Fragment getItem(int position) {
AbstractFragment fragment;
switch (position) {
case 0:
fragment = new MainFragment();
break;
case 1:
fragment = new MessagesFragment();
break;
case 2:
fragment = new SearchFragment();
break;
default:
return null;
}
return fragment;
}
侦听例如MainActivity
(支票将在第二个方案失败):
Fragment fragment = viewPagerAdapter.getRegisteredFragment(2);
if (fragment instanceof SearchFragment) {
((SearchFragment)fragment).doStuff();
}
我唯一的想法是检查服务器响应(即,如果有两个或三个选项卡),在每一个听者MainActivity
,并在每getItem
的情况下,这是一个可怕的小号在我看来的解决方案。有没有更好的方法来处理这个问题?
@NeriaNachum这是否解决了您的问题?如果是,请接受答案 –