Как обработать getItem () из FragmentPagerAdapter при работе с динамическими фрагментами? - PullRequest
0 голосов
/ 04 октября 2019

Я работаю с тремя фрагментами. Все они включены сторонним приложением. Таким образом, мы можем либо включить все, либо включить их комбинацию.

Например, скажем, у нас есть 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));
    }
...