android - Android如何将TabLayout定位到屏幕底部(针对谷歌的材料设计库TabLayout)
问题描述
我正在尝试使用与 ViewPager 连接的 TabLayout 来创建三个可滑动的片段。但是,我遇到了一个问题:我希望 TabLayout 位于屏幕底部,但 ViewPager 强制它位于顶部。
TabLayout 曾经位于android.support.design.widget库中。然而,自从引入了 androidx 以来,这个库已经发生了变化。新库是com.google.android.material.tabs.TabLayout。
以前的(和过时的)帖子(example1,example2 )通过简单地创建一个垂直并将andLinearLayout
指定为 that 的两个单独元素,为上述问题提出了一个简单的解决方案。ViewPager
TabLayout
LinearLayout
上述解决方案不再可行,因为现在,您必须将 指定为( referenceTabLayout
)内的元素,如下所示:ViewPager
<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
该方法: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);
现在,我怎样才能通过 xml 代码或以编程方式巧妙地使 TabLayout 进入 ViewPager 的底部?
解决方案
我找到了答案: simpy add android:layout_gravity="bottom"
the TabLayout
in xml.
所以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>
推荐阅读
- javascript - 使用对象破坏时浏览器不一致的意外“未定义”字符串
- code-completion - 如何将打字稿代码完成添加到另一种语言?
- javascript - 在 angularjs 中使用工厂中的工厂
- apache-spark-sql - 使用 scala 为给定模式创建数据集的有效方法是什么?
- shiny - 在 Shiny 模式下访问数据表中的行点击
- google-cloud-platform - gcloud 上 vCPU 的 RAM
- networking - SSL 是否只加密表单数据,或者页面的其他部分?
- c# - 使用 WCF 上传文件
- javascript - 使用 Smoothstate 重新加载 Ajax 后未应用背景 CSS 属性
- gensim - doc2vec(gensim) infer_vector 需要窗口大小的填充句吗?