Android - 线性布局中的 BottomNavigationMenu 和 listView

Android - BottomNavigationMenu and listView in a Linear Layout

我的 BottomNavigationBar 有一个奇怪的问题

情况是这样的: 我有一个 activity 包含 - 用于显示债务和信用的小片段并且有效 - 一个包含我所有支出的列表视图,它也能正常工作 - 部分工作的 bottomNavigationMenuBar,实际上它没有锚定到我的 activity 的底部,但如果停留在 ListView 的底部直到 ListView 占据显示器上的所有 space

我附上一些屏幕来更好地解释 没有好的行为,它必须留在底部
ListView 比屏幕大而且效果很好

这是我的XML

    <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/tab_bck"
    xmlns:design="http://schemas.android.com/apk/res-auto">
        <LinearLayout
            android:id="@+id/LinearVerticalLayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:background="@color/tab_bck" >

            <android.support.v7.widget.Toolbar
                xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:layout_width="match_parent"
                android:id="@+id/expenseToolbar"
                android:layout_height="?attr/actionBarSize"
                android:elevation="6dp"
                app:layout_collapseMode="pin"
                app:layout_scrollFlags="scroll|enterAlways"
                app:popupTheme="@style/AppTheme"
                app:navigationIcon="?attr/homeAsUpIndicator"
                app:titleTextColor="@android:color/white"
                app:subtitleTextColor="@android:color/white"
                android:background="@color/colorPrimary">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                /></android.support.v7.widget.Toolbar>


            <FrameLayout
                android:id="@+id/fragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:name="it.polito.mad17.viral.sliceapp.Fragment_of_money"
                />
            <ListView
                android:id="@+id/listView2"
                android:layout_width="match_parent"
                android:layout_weight="1"
                android:layout_height="0dp"
                android:background="@color/tab_bck"
                android:longClickable="true"
                />

            <android.support.design.widget.BottomNavigationView

                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/bottom_nav_bar"
                android:layout_gravity="bottom"
                design:menu="@menu/bottom_nav_bar_menu"
                design:itemIconTint="#16a085"
                design:itemTextColor="#16a085"/>

        </LinearLayout>
</android.support.design.widget.CoordinatorLayout>

尝试提供 LinearVerticalLayout 的 android:layout_height="match_parent",也许它会起作用

在线性布局之外放置底部栏。像这样:

 <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/tab_bck"
    xmlns:design="http://schemas.android.com/apk/res-auto">
        <LinearLayout
            android:id="@+id/LinearVerticalLayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:background="@color/tab_bck" >

            <android.support.v7.widget.Toolbar
                xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:layout_width="match_parent"
                android:id="@+id/expenseToolbar"
                android:layout_height="?attr/actionBarSize"
                android:elevation="6dp"
                app:layout_collapseMode="pin"
                app:layout_scrollFlags="scroll|enterAlways"
                app:popupTheme="@style/AppTheme"
                app:navigationIcon="?attr/homeAsUpIndicator"
                app:titleTextColor="@android:color/white"
                app:subtitleTextColor="@android:color/white"
                android:background="@color/colorPrimary">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                /></android.support.v7.widget.Toolbar>


            <FrameLayout
                android:id="@+id/fragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:name="it.polito.mad17.viral.sliceapp.Fragment_of_money"
                />
            <ListView
                android:id="@+id/listView2"
                android:layout_width="match_parent"
                android:layout_weight="1"
                android:layout_height="0dp"
                android:background="@color/tab_bck"
                android:longClickable="true"
                />
</LinearLayout>
            <android.support.design.widget.BottomNavigationView

                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/bottom_nav_bar"
                android:layout_gravity="bottom"
                design:menu="@menu/bottom_nav_bar_menu"
                design:itemIconTint="#16a085"
                design:itemTextColor="#16a085"/>


</android.support.design.widget.CoordinatorLayout>

这应该适合你