来自Android支持库的BottomNavigationView阻塞视图

时间:2018-01-30 08:30:28

标签: android android-bottomnav

我正在使用BottomNavigationView作为底栏,而在一个活动中,我在listView中显示了一个对象列表。但是我应用于该活动的底栏阻碍了listView的最后一个元素..

enter image description here

从图像中可以看出,最后一个列表元素被底栏阻挡(最后一个元素的城市不可见)。

如何解决此问题并在没有底栏介入的情况下正确显示列表元素。 这是xml代码:

<android.support.constraint.ConstraintLayout 
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"
tools:context="com.example.vendorapp.Promotion">

<RelativeLayout
    android:id="@+id/mainrlot"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/cust_dtl"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:visibility="invisible">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Customer List"
            android:textColor="#000000"
            android:textSize="30sp" />

            <ListView
                android:id="@+id/cstmrListView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:divider="@android:color/transparent"
                android:stackFromBottom="false"
                android:transcriptMode="alwaysScroll"
                tools:layout_editor_absoluteX="8dp"
                tools:layout_editor_absoluteY="24dp"
                tools:listitem="@layout/customer_list" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="end of result"
                android:textSize="20sp"/>

      </LinearLayout>   
     </RelativeLayout>

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginEnd="0dp"
    android:layout_marginStart="0dp"
    android:background="?android:attr/windowBackground"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:menu="@menu/navigation" />

</android.support.constraint.ConstraintLayout>

2 个答案:

答案 0 :(得分:1)

您应该将ID为cust_dtl的布局设置在BottomNavigationView之上,现在您的列表视图位于底部导航视图的后面,这就是为什么您不会看到最后一行

试试这个解决方案:

 <RelativeLayout
  android:id="@+id/mainrlot"
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  xmlns:app="http://schemas.android.com/apk/res-auto">

  <android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    android:layout_alignParentBottom="true"
    app:layout_constraintRight_toRightOf="parent"
    app:menu="@menu/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="0dp"
    android:layout_marginStart="0dp"
    android:background="?android:attr/windowBackground"/>

  <LinearLayout
    android:id="@+id/cust_dtl"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/navigation"
    android:orientation="vertical"
    android:visibility="invisible">

    <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:text="Customer List"
      android:textColor="#000000"
      android:textSize="30sp"/>

    <ListView
      android:id="@+id/cstmrListView"
      app:layout_editor_absoluteX="8dp"
      app:layout_editor_absoluteY="24dp"
      app:listitem="@layout/customer_list"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:divider="@android:color/transparent"
      android:stackFromBottom="false"
      android:transcriptMode="alwaysScroll"/>

    <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="end of result"
      android:textSize="20sp"/>

  </LinearLayout>


</RelativeLayout>

答案 1 :(得分:1)

这样做。

<RelativeLayout
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"
tools:context="com.example.vendorapp.Promotion">
    <LinearLayout
        android:id="@+id/cust_dtl"
        android:layout_above="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:visibility="invisible">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Customer List"
            android:textColor="#000000"
            android:textSize="30sp" />

        <ListView
            android:id="@+id/cstmrListView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:divider="@android:color/transparent"
            android:stackFromBottom="false"
            android:transcriptMode="alwaysScroll"
            tools:layout_editor_absoluteX="8dp"
            tools:layout_editor_absoluteY="24dp"
            tools:listitem="@layout/customer_list" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="end of result"
            android:textSize="20sp"/>

    </LinearLayout>

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?android:attr/windowBackground"
    android:layout_alignParentBottom="true"
    app:menu="@menu/navigation" />
</RelativeLayout>