我正在尝试使用TabLayout和ViewPager创建三个可滑动的片段。然而,我遇到了一个问题:我希望TabLayout位于屏幕底部,但ViewPager强制它位于顶部。
TabLayout曾经在android.support.design.widget库中使用。然而,自androidx引入后,此库已被更改。新库为com.google.android.material.tabs.TabLayout。
以前(过时的)帖子(example1,example2)建议通过创建垂直LinearLayout并将ViewPager和TabLayout指定为该LinearLayout的两个单独元素来解决上述问题。
由于现在必须将
然后,要将
现在,我该如何使TabLayout整齐地从XML代码或编程方式移动到ViewPager的底部?
TabLayout曾经在android.support.design.widget库中使用。然而,自androidx引入后,此库已被更改。新库为com.google.android.material.tabs.TabLayout。
以前(过时的)帖子(example1,example2)建议通过创建垂直LinearLayout并将ViewPager和TabLayout指定为该LinearLayout的两个单独元素来解决上述问题。
由于现在必须将
TabLayout
指定为ViewPager
内的元素(reference),因此上述解决方案已不再可行。<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="48dp"
>
</com.google.android.material.tabs.TabLayout>
</androidx.viewpager.widget.ViewPager>
然后,要将
ViewPager
与TabLayout
“合并”,必须在TabLayout
实例上调用setupWithViewPager(ViewPager vp)
方法:ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
MainPagerAdapter mpa = new MainPagerAdapter(getSupportFragmentManager(), 3);
viewPager.setAdapter(mpa);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
现在,我该如何使TabLayout整齐地从XML代码或编程方式移动到ViewPager的底部?