2017-04-06 76 views
0

我有一个奇怪的问题,我BottomNavigationBar的Android - BottomNavigationMenu和ListView的线性布局

的情况是这样的: 我有一个包含 活动 - 用于显示债权债务一点点片段和它的作品 - 用我所有的支出列表视图和它的作品以及 - 一个bottomNavigationMenuBar的工作部分,实际上它是不是挂靠在我活动的底部,但如果入住的ListView直到ListView控件的底部占据所有显示上的空间

我附上一些屏幕来更好的解释 no good behaviour, it must stay at the bottom 没有好的行为,它必须留在底部
enter image description here 的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> 
+0

使用的RelativeLayout代替的LinearLayout – Sach

回答

0

将您的BottomBar放在线性布局之外。就像这样:

<?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> 

这应该为你工作

+0

它工作在我身边。检查然后让我知道它的工作或没有@ Kalos92 –

+0

作品部分,但问题是:当ListView控件被occpuying所有的最后一个可见项目开始下BottomNavigationBar – Kalos92

+0

屏幕使底部栏高度修正像'60dp'。然后在Linear layout标签中添加页边距'60dp'。就像这样:'机器人:layout_marginBottom =“60dp' –

0

先给LinearVerticalLayout的android:layout_height = “match_parent”,可能会起作用

+0

没有,我在活动中的所有项目消失 – Kalos92