我使用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這是否解決了您的問題?如果是,請接受答案 –