我正在尝试将 aCoordinatorLayout
与 a BottomNavigationView
、 anAppBarLayout
和 a一起使用ViewPager
。这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="enterAlways|scroll"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="?android:attr/windowBackground"
app:itemIconTint="?colorPrimaryDark"
app:itemTextColor="?colorPrimaryDark"
app:menu="@menu/navigation"/>
</android.support.design.widget.CoordinatorLayout>
问题是延伸到屏幕底部的CoordinatorLayout
地方,所以底部被 遮住了,像这样:ViewPager
BottomNavigationView
即使它CoordinatorLayout
本身没有向下延伸,也会发生这种情况:
我尝试添加app:layout_insetEdge="bottom"
到BottomNavigationView
和app:layout_dodgeInsetEdges="bottom"
,ViewPager
但这有一个不同的问题:它移动了底部的ViewPager
向上,但它保持相同的高度,所以顶部现在被切掉了:
我尝试了另外两个实验。首先,我尝试从BottomNavigationView
中 删除CoordinatorLayout
并使它们成为垂直下的兄弟姐妹LinearLayout
。其次,我将ViewPager
andBottomNavigationView
放在 a 下LinearLayout
,希望它们的布局正确。两者都没有帮助:在第一种情况下,CoordinatorLayout
仍然是ViewPager
相对于整个屏幕的大小,或者将部分隐藏在后面BottomNavigationView
或切掉顶部。在第二种情况下,用户需要滚动才能看到BottomNavigationView
.
如何正确布局?
PS当我尝试@Anoop SS建议的布局时(将CoordinatorLayout
和BottomNavigationView
作为兄弟姐妹放在 a 下RelativeLayout
),我得到以下信息(ViewPager
仍然在 后面向下延伸BottomNavigationView
):
和以前一样,它CoordinatorView
本身只向下延伸到BottomNavigationView
.