RecyclerView没有填充android中的剩余空间

时间:2017-09-23 23:44:41

标签: android android-layout

我正在学习安卓编程,正在研究一个简单的"帖子","评论","喜欢"应用类型。从来没有一百万年我会认为构建Android应用程序最困难的部分是试图让布局工作。我拥有来自firebase数据库的所有信息,这很简单,但是试图让布局看起来正确几乎是不可能的。我甚至尝试从他们的快速入门应用程序中复制/粘贴firebase,这是一个完成数据库工作的应用程序。不过,它不会填补该地区。顶部看起来很棒,但我有一个RecyclerView应该重复该帖子的评论,它正在重复它们,但它只是页面高度的一小部分,正如你在屏幕截图中看到的那样。我尝试过使用ScrollView,NestedScrollView,将RecyclerView放在RelativeLayout,LinearLayout中,什么都没有用。这是视图的xml ...

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingBottom="@dimen/activity_vertical_margin"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                tools:context="com.google.firebase.quickstart.auth.PostDetailActivity">

    <include
        android:id="@+id/post_author_layout"
        layout="@layout/include_post_author"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true" />

    <include
        android:id="@+id/post_text_layout"
        layout="@layout/include_post_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/post_author_layout"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="10dp" />

    <LinearLayout
        android:id="@+id/comment_form"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_below="@+id/post_text_layout"
        android:layout_marginTop="20dp"
        android:weightSum="1.0">

        <EditText
            android:id="@+id/field_comment_text"
            android:layout_width="0dp"
            android:layout_weight="0.8"
            android:layout_height="wrap_content"
            android:maxLines="1"
            android:hint="Write a comment..."/>

        <Button
            android:id="@+id/button_post_comment"
            style="@style/Base.Widget.AppCompat.Button.Borderless"
            android:layout_width="0dp"
            android:layout_weight="0.2"
            android:layout_height="wrap_content"
            android:text="Post"/>

    </LinearLayout>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_comments"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/comment_form"
        tools:listitem="@layout/item_comment" />

</RelativeLayout>

查看屏幕截图,评论部分是如此之小,我在滚动中间截取屏幕截图,这样你就可以看到顶部位于正确的位置,但底部只有几个像素高,它不是&#39 ; t一直到屏幕的底部。任何帮助是极大的赞赏。谢谢。 enter image description here

如果我将RecyclerView高度设置为match_parent,我仍然只会收到一条评论,因为每条评论现在都是父级的高度。 enter image description here

1 个答案:

答案 0 :(得分:3)

由于RecyclerView是一个动态布局,您希望始终填充父布局,而不是尝试包装其内容。

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_comments"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/comment_form"
    tools:listitem="@layout/item_comment" />