Я работаю с тремя фрагментами. Все они включены сторонним приложением. Таким образом, мы можем либо включить все, либо включить их комбинацию.
Например, скажем, у нас есть FragA, FragB и FragC: FragA может быть включен, но не FragB и Frac могут быть
Мой текущийЛогика отображения выглядит следующим образом: * Где фрагменты являются глобальными переменными.
public Fragment getItem(int position) {
Fragment fragment = null;
if (shouldDisplayFragA(FragA, position)) {
if (FragA == null) {
FragA = FragA.newInstance();
}
fragment = FragA;
} else if (shouldDisplayFragB(FragB, position)) {
if (FragB == null) {
FragB = FragB.newInstance();
}
fragment = FragB;
} else if (shouldDisplayFragC(FragC, position)) {
if (FragC == null) {
FragC = FragC.newInstance();
}
fragment = FragC;
}
return fragment;
}
Моя главная задача - как это может потенциально увеличиться с другим фрагментом. Моя текущая логика для shouldDisplay выглядит следующим образом.
private boolean shouldDisplayFrag(Fragment frag, int position) {
return frag == null && (areAllEnabled && position == FRAGAPOSITION
|| (FRAGAEnabled && !FragBEnabled && !FragCEnabled
|| FRAGAEnabled && FragBEnabled && !FragCEnabled
|| FRAGAEnabled && !FragBEnabled));
}