Компонент Material TabLayout внутри фрагмента в Котлине - PullRequest
0 голосов
/ 25 июня 2018

Я разрабатываю приложение, используя Kotlin и Material Components (https://material.io/develop/android). Я пытаюсь использовать TabLayout (https://material.io/develop/android/components/tab-layout) внутри фрагмента), и я хочу открывать фрагменты с помощью этого TabLayout.

В моей деятельности у меня есть нижняя навигация. Эта нижняя навигация открывает фрагмент, и внутри этого фрагмента находится мой TabLayout и ViewPager. Я хочу открыть фрагмент внутри этого ViewPager (или, возможно, я могу заменить этот ViewPager на ContentFrameLayout или аналогичный).

Итак, заказ: Активность -> Фрагмент (по нижней навигации) -> Фрагмент (по TabLayout)

Как я могу это сделать?

1 Ответ

0 голосов
/ 25 июня 2018

Вы должны использовать childFragmentManager, чтобы добавить второй слой фрагментов (фрагмент внутри фрагмента).

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

supportFragmentManager.beginTransaction().replace(R.id.fragment_container,YourFragmentWithTablayot)

для добавления второго уровня фрагмента на Tablayout - viewpager, установите viewPagerAdapter с ChildFragmentManger.

ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
viewPager.setAdapter(adapter);

ViewPagerAdapter - это пользовательский класс адаптера, который расширяет FragmentAdapter.

// пример кода адаптера

    public class ViewPagerAdapter extends FragmentPagerAdapter {


    public ViewPagerAdapter(FragmentManager fm) {


        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return null;
    }

    @Override
    public int getCount() {
        return 0;
    }
}
...