不能同时使用 `BottomNavigationView` 和 `ViewPager` 以及 `TabLayout`

cannot use `BottomNavigationView` and `ViewPager` and `TabLayout` simultaneously

我在互联网上做了很多研究,得出的结论是我们不能同时使用BottomNavigationViewViewPagerTabLayout。但是有很多应用程序(例如 Instagram)将它们合并了。 我的问题是他们怎么能那样做?他们有没有使用特殊技巧?

bottomNavigationView配合ViewPager使用并不难

  1. 在您的布局中声明这两个控件。
  2. 设置 viewPageAdapter 并向其添加片段,将适配器设置为 viewPager。
  3. 设置 bottomNavigationView 覆盖 onNavigationItemSelectedListener,现在将设置 viewPagerAdapter 的当前项。

您是否需要更详细的代码示例,或者您准备好了吗?

您可以在 activity 中创建 bottomNavigationView 并在单击它的项目时使用此代码在其中附加片段:

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction()
                .replace(frameId, fragment, "fragTransaction");
        transaction.commit();

然后使用 tabLayout 和 viewPager 创建一个片段来控制其中的子片段,而您最常使用的是控制 viewPagerAdapter 中的片段

    FragmentManager fragmentManager = getChildFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction()
            .replace(frameId, fragment, "fragTransaction");
    transaction.commit();