TabLayout 加载 Fragments 但其 BottomNavigationView 未显示在底部
Posted
技术标签:
【中文标题】TabLayout 加载 Fragments 但其 BottomNavigationView 未显示在底部【英文标题】:TabLayout load Fragments but its BottomNavigationView not showing on bottom 【发布时间】:2018-05-07 15:15:16 【问题描述】:TabLayout 调用并加载 Fragments。片段预览没问题,everythink ok。加载片段后问题开始。 底部导航视图
android:layout_alignParentBottom="true"
不显示在底部。但是把位置换到top没有问题,就是show。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_
android:layout_>
<TextView
android:id="@+id/message"
android:layout_
android:layout_
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="@string/yazarlar"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_
android:layout_
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/navigation" />
</android.support.constraint.ConstraintLayout>
【问题讨论】:
在您的问题被否决之前,请包含您的整个布局 XML 文件,如果没有它,我们将无法帮助您。 请发布您的 XML 布局 【参考方案1】:实际上,我在您的代码中没有看到类似
的内容android:layout_alignParentBottom="true"
也就是说,在您之前的代码中,您使用 RelativeLayout 作为父级,所以请发布您的原始代码。我建议你使用这样的东西:
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_
android:layout_
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/navigation" />
【讨论】:
【参考方案2】:插入此代码android:layout_alignParentBottom="true"
未显示在片段中。我尝试一些布局。原始布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
android:layout_
android:layout_>
<TextView
android:id="@+id/message"
android:layout_
android:layout_
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="@string/yazarlar"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_
android:layout_
android:background="?android:attr/windowBackground"
android:layout_alignParentBottom="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/navigation" />
</RelativeLayout>
【讨论】:
以上是关于TabLayout 加载 Fragments 但其 BottomNavigationView 未显示在底部的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 中以编程方式创建 TabLayout
如何使用 TabLayout 将数据从 Activity 传递到 Fragment
响应Activity中的ViewPager2 Fragments事件