2017-09-23 66 views
1

我正在學習Android編程和工作在一個簡單的「職位」,「評論」,「喜歡」類型的應用程序。從未在一百萬年內,我會認爲構建Android應用程序最難的部分是試圖讓佈局工作。我擁有來自Firebase數據庫的所有信息,這很容易,但試圖讓佈局看起來是正確的是幾乎不可能的。我甚至嘗試從他們的快速入門應用程序中複製/粘貼Firebase,這是一個執行數據庫工作的應用程序。不過,它不會填滿該區域。頂部部分看起來不錯,但我有一個RecyclerView,應該重複該帖子的評論,它正在重複它們,但它只是頁面高度的一小部分,正如您在截圖中看到的那樣。我曾嘗試使用ScrollView,NestedScrollView,將RecyclerView放入RelativeLayout,LinearLayout中,沒有任何工作。這裏是XML的觀點...RecyclerView沒有填充在Android的其餘空間

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

退房的截圖,評論部分是如此之小,我把截圖中滾動所以你可以看到頂部是在正確的位置的中間,但底部只有幾個像素高,它不會一直走到屏幕的底部。任何幫助是極大的讚賞。謝謝。 enter image description here

如果我將RecyclerView高度設置爲match_parent,我仍然只會得到一個評論,因爲每個評論現在都是父級的高度。 enter image description here

+1

刪除'android:paddingBottom'? –

+0

是的,你可以在頂部的RelativeLayout中刪除根目錄下的填充 – cutiko

+0

?我試過了,它只是「5dp」,所以它並沒有太大的傷害 –

回答

2

由於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" /> 
+0

如果我這樣做,它會使每個註釋成爲剩餘空間的大小。所以只顯示1條評論,那麼你必須向下滾動才能看到更多內容。我會將另一張圖片上傳到OP,以便在RecyclerView的高度上顯示match_parent。 –

+0

等待,您在另一個RecyclerView的每個項目中都有一個RecyclerView? –

+0

如果沒有,那麼您的發佈XML佈局有些問題。 RecyclerView現在尺寸正確 –