BottomNavigationView将片段转换为ViewPager

时间:2018-04-05 21:28:57

标签: android android-viewpager bottomnavigationview

我有RecyclerViewBottomNavigationView的片段。 此片段将放置在具有以下布局的ViewPager中:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    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_width="match_parent"
    android:layout_height="match_parent">
    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
       >
        <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:theme="@style/AppTheme.AppBarOverlay">
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways"
                app:popupTheme="@style/AppTheme.PopupOverlay" />
            <android.support.design.widget.TabLayout
                android:id="@+id/tab_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/toolbar"
                android:background="?attr/colorPrimary"
                android:minHeight="?attr/actionBarSize"
                android:theme="@style/AppTheme.AppBarOverlay" />
        </android.support.design.widget.AppBarLayout>
        <android.support.v4.view.ViewPager
            xmlns:android="http://schemas.android.com/apk/res/android"
            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.CoordinatorLayout>
    </FrameLayout>

现在,当我将此片段用于此ViewPager时,底栏隐藏在NavigationBar下,当我向上滚动时,它将显示。 我的问题是:如何锁定底栏始终可见?

1 个答案:

答案 0 :(得分:0)

您的ViewPager的高度等于父级。

 android:layout_height="match_parent"

将其更改为wrap_content

注意:在您的情况下,您还需要将其layout_gravity设置为&#34; bottom&#34;因为它会从FrameLayout的0,0开始。

或者更好,为了适应所有剩余空间,请使用android:orientation =&#34; vertical&#34;

将FrameLayout更改为LinearLayout

然后添加layout_weight =&#34; 1&#34;到你的ViewPager。