0

我正在使用 Kotlin 和 Material Components ( https://material.io/develop/android ) 开发一个应用程序。我正在尝试在片段中使用 TabLayout ( https://material.io/develop/android/components/tab-layout ),并且我想使用此 TabLayout 打开片段。

在我的活动中,我有一个底部导航。这个底部导航打开一个片段,这个片段里面是我的 TabLayout 和一个 ViewPager。我想在这个 ViewPager 中打开一个片段(或者我可以把这个 ViewPager 替换为 ContentFrameLayout 或类似的)。

所以,顺序是:Activity -> Fragment (by Bottom Navigation) -> Fragment (by TabLayout)

我怎样才能做到这一点?

4

1 回答 1

2

您必须使用 childFragmentManager 添加第二层片段(片段内的片段)。

在底部导航单击的 Activity 中,您可以使用片段管理器添加带有 Tablayout 的片段。

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

要在 Tablayout - viewpager 上添加第二级片段,请使用 ChildFragmentManger 设置 viewPagerAdapter。

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;
    }
}
于 2018-06-25T05:13:25.220 回答