Как сохранить все классы дочерних фрагментов в экземпляре родительского класса - PullRequest
0 голосов
/ 27 сентября 2018

Я работаю над функцией, похожей на «домашнюю ленту», где есть основной Fragment с несколькими другими фрагментами, добавленными к его макету, составляющему страницу контента.Мне бы хотелось, чтобы основной класс фрагментов мог создавать экземпляры всех классов фрагментов, которые наследуются от определенного родительского класса фрагментов.Таким образом, код будет более динамичным, вместо того, чтобы добавлять кучу тегов <fragment> в мои xml-файлы.

Я застрял на создании приличной архитектуры.Как бы вы продолжили делать это?

ОБНОВЛЕНИЕ: Вот что я в основном пытаюсь сделать, но не знаю как:

public class FeedFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
        View parentView = inflater.inflate(R.layout.fragment_home, container, false);

        // Get fragments and dynamically add them to
        // the FeedFragment's layout
        getEntryFragmentsList();
        // ...

        return parentView;
    }
}

public abstract class FeedEntryFragment extends Fragment {
   // Somehow add fragment to list of entry fragments
}

public class TestFragment extends FeedEntryFragment {
    // Already added to list of entry fragments
}

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Вы должны использовать FrameLayout для динамического добавления фрагментов с помощью FragmentTransaction .

. Вы также можете использовать ViewPager свкладки или нижние вкладки, чтобы показать несколько фрагментов.Пожалуйста, проверьте образец из моей библиотеки Dynamic Support для полного кода.


Абстрактные фрагменты DynamicFragment - Абстрактный базовый фрагмент из библиотеки поддержки Dynamic. DynamicViewPagerFragment - Абстрактный фрагмент, расширяющий DynamicFragment для реализации функциональности ViewPager.

Реализация HomeFragment - Пример фрагмента расширяет DynamicFragment для реализации домашнего экрана. SettingsFragment - Образец фрагмента расширяет DynamicViewPagerFragment для реализации функциональности настроек с использованием нескольких фрагментов в пейджере представления.

Реализация учебника Это лучше соответствует вашим потребностям. TutorialActivity возвращает список фрагментов, которые должны отображаться внутри ViewPager.

DynamicSimpleTutorial создает DynamicTutorialFragment в соответствии с предоставленными параметрами.

0 голосов
/ 27 сентября 2018

Не думаю, что возможно уменьшить количество xmls по наследству.Я думаю, вам следует попытаться разделить свои конфигурации XML и использовать некоторые <merge> или <include> для создания полной конфигурации из частей.

Может быть, я смогу оказать дополнительную помощь, если вы опишите вашу проблему более подробноподробности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...