Android如何将TabLayout定位到屏幕底部(针对谷歌的 Material 设计库TabLayout)

标签 android android-fragments android-viewpager android-tablayout

我正在尝试使用与 ViewPager 结合的 TabLayout 来创建三个可滑动的 fragment 。但是,我遇到了一个问题:我希望 TabLayout 位于屏幕底部,但 ViewPager 强制它位于顶部

TabLayout 曾经在 android.support.design.widget 库中。但是,自引入 androidx 以来,这个库已经发生了变化。新库是 com.google.android.material.tabs.TabLayout

以前的(和过时的)帖子(example1example2)建议通过简单地创建一个垂直的 LinearLayout 来解决上述问题。并指定 ViewPagerTabLayout作为 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>

然后,“合并” ViewPagerTabLayout , setupWithViewPager(ViewPager vp)必须在 TabLayout 上调用方法实例:

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 转到 ViewPager 的底部,无论是从 xml 代码还是以编程方式?

最佳答案

我找到了答案:简单地将 android:layout_gravity="bottom" 添加到 xml 中的 TabLayout

所以 xml 实现现在看起来像:

<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"
            android:layout_gravity="bottom"
            >
        </com.google.android.material.tabs.TabLayout>
    </androidx.viewpager.widget.ViewPager>

关于Android如何将TabLayout定位到屏幕底部(针对谷歌的 Material 设计库TabLayout),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58057603/

相关文章:

java - 让Fragment等待Thread完成

android - 方向从双 Pane 更改为单 Pane

android - 如何使 PreferenceFragment 与 MainActivity 一起工作

java - onClick 在 vi​​ewpager android 中不起作用

android - 在 Android 中正确实现 ViewPager2

java - ListView 中的 Android Spinner 有时会重新初始化

java - 谷歌地图在 Android 中的选项卡 fragment 上显示灰色

android - 不保留 Activity 和后台进程限制有什么区别。从开发人员的角度来看?

android - ViewPager 中的 fragment 为空白

android - FragmentPagerAdapter 未正确删除项目( fragment )