私のアプリケーションでは、BottomNavigation
の下部にCoordinatorLayout
を表示したいので、以下のコードを記述します。
<?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"
>
<Android.support.design.widget.AppBarLayout
Android:id="@+id/main.appbar"
Android:layout_width="match_parent"
Android:layout_height="150dp"
Android:fitsSystemWindows="true"
Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<Android.support.design.widget.CollapsingToolbarLayout
Android:id="@+id/main.collapsing"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<include
Android:id="@+id/mainToolbar"
layout="@layout/toolbar_main" />
</Android.support.design.widget.CollapsingToolbarLayout>
</Android.support.design.widget.AppBarLayout>
<com.aurelhubert.ahbottomnavigation.AHBottomNavigationViewPager
Android:id="@+id/mainViewPager"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_above="@+id/mainBottomNavigation"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<com.aurelhubert.ahbottomnavigation.AHBottomNavigation
Android:id="@+id/mainBottomNavigation"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
app:layout_anchorGravity="bottom"
app:selectedBackgroundVisible="true" />
</Android.support.design.widget.CoordinatorLayout>
しかし、アプリケーションを実行すると、BottomNavigation
top of CoordinatorLayout
!
BottomNavigation
の下部にCoordinatorLayout
を表示するにはどうすればよいですか?
答えが遅すぎないことを願っています。同じ問題が発生したので、Android:layout_gravity = "bottom"を使用しました。ツールバーとBottomNavigationViewがあり、中央にフラグメントのプレースホルダーとして使用されるFrameLayoutがあります。これが私のXMLレイアウトです:
<?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"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@drawable/bg_main"
Android:minHeight="?attr/actionBarSize">
<Android.support.design.widget.AppBarLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@color/colorTab"
app:layout_scrollFlags="scroll|enterAlways"
/>
</Android.support.design.widget.AppBarLayout>
<FrameLayout
Android:id="@+id/fragment_placeholder"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
>
<Android.support.v4.view.ViewPager
Android:id="@+id/slide_viewpager"
Android:layout_width="match_parent"
Android:layout_height="match_parent"/>
</FrameLayout>
<Android.support.design.widget.BottomNavigationView
Android:id="@+id/bottom_navigation"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom"
app:itemBackground="@color/colorTab"
app:itemIconTint="@drawable/bottom_navigation_toolbar"
app:itemTextColor="@drawable/bottom_navigation_toolbar"
app:menu="@menu/bottom_bar"
/>
</Android.support.design.widget.CoordinatorLayout>
また、 this の質問も確認してください。ほぼ同じレイアウトを使用し、スクロール時に非表示になるようにBottomNavigationViewの動作を変更する方法も示しています。その機能を実装したい場合は、クラスBottomNavigationBehavior(または呼び出したいもの)を作成し、この行をXMLのBottomNavigationViewに追加してください。 :
app:layout_behavior="com.yourpackage.yourpackage.BottomNavigationBehavior"
それが役に立てば幸い!