对齐父级底部相对布局隐藏了回收器视图

时间:2017-01-16 10:27:14

标签: android alignment

我一直在寻找这个问题。 我已将LinearLayout与父相对布局的底部以及RecyclerView对齐,作为同一级别的子项,事实是该列表未检测到底部的元素并且它滚动直到结束,所以我看不到最后一个列表的一行。 这是我的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_marginTop="10dp"
    android:clipToPadding="false"
    android:clipChildren="false"
    android:fitsSystemWindows="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<!--some code-->
<LinearLayout
        android:layout_below="@+id/comments"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerViewComments"
            android:scrollbars="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent" />
    </LinearLayout>
<LinearLayout
         android:layout_width="match_parent"
         android:layout_alignParentBottom="true"
         android:shadowColor="#000"
         android:shadowDx="-2"
         android:shadowRadius="8"
         android:shadowDy="-10"
         android:layout_marginTop="10dp"
         android:layout_height="wrap_content">
<!--some code-->
  </LinearLayout>
</RelativeLayout>

5 个答案:

答案 0 :(得分:1)

尝试以下代码。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_marginTop="10dp"
    android:clipToPadding="false"
    android:clipChildren="false"
    android:fitsSystemWindows="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<!--some code-->
<LinearLayout
        android:id="@+id/recyclerViewContainer"
        android:layout_below="@+id/comments"
        android:layout_above="@+id/bottomLinearLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerViewComments"
            android:scrollbars="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent" />
    </LinearLayout>
<LinearLayout
         android:id="@+id/bottomLinearLayout"
         android:layout_width="match_parent"
         android:layout_alignParentBottom="true"
         android:shadowColor="#000"
         android:shadowDx="-2"
         android:shadowRadius="8"
         android:shadowDy="-10"
         android:layout_marginTop="10dp"
         android:layout_height="wrap_content">
<!--some code-->
  </LinearLayout>
</RelativeLayout>

基本上,您的底部LinearLayout与RecyclerView重叠。通过在RecyclerView的父布局上使用android:layout_above,我们可以避免这种情况。

答案 1 :(得分:1)

设置android:layout_above属性以设置recyclelerView avobe足球的容器

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_marginTop="10dp"
    android:clipToPadding="false"
    android:clipChildren="false"
    android:fitsSystemWindows="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!--some code-->
    <LinearLayout
        android:layout_below="@+id/comments"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/aLayout">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerViewComments"
            android:scrollbars="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/aLayout"
        android:layout_width="match_parent"
        android:layout_alignParentBottom="true"
        android:shadowColor="#000"
        android:shadowDx="-2"
        android:shadowRadius="8"
        android:shadowDy="-10"
        android:layout_marginTop="10dp"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <!--some code-->
    </LinearLayout>
</RelativeLayout>

答案 2 :(得分:1)

您没有发布完整的代码。但在您的情况下,您只需创建一个LinearLayout并设置android:layout_alignParentBottom="true"。这没关系..
但是在包含Recycler的Linearlayout中,您要添加此android:layout_below="@+id/comments"。只有这还不够。你需要添加 属性上面的布局

android:layout_above="@+id/bottomLayout"

答案 3 :(得分:0)

尝试在包含Recycler的LinearLayout上添加paddingBottom,其高度与Recycler中的Adapter相同

答案 4 :(得分:0)

将LinearLayout更改为RelativeLayout,使其低于回收站