2016-06-07 6 views
0

Ich habe zwei einfache Recycleransichten, die ich direkt untereinander anzeigen möchte. Hier ist mein Layout:Recycler Untereinander sehen nicht angezeigt?

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <include 
      layout="@layout/drawer_view_header" 
      android:id="@+id/navigation_header"/> 

     <android.support.v7.widget.RecyclerView 
      android:layout_below="@id/navigation_header" 
      android:id="@+id/friends_list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 

     <android.support.v7.widget.RecyclerView 
      android:layout_below="@id/friends_list" 
      android:id="@+id/followers_list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 

    </RelativeLayout> 

Ich habe meine navigationHeader über meine erste Recycler Ansicht friends_list genannt, der gut arbeitet, und ich kann die friends_list Recycler Blick sehen, welche android:layout_height="wrap_content" hat aber die followers_list Recycler Ansicht scheint nicht einmal zu zeigen, obwohl alle Inhalte meines friends_list alle gezeigt werden. Irgendwelche Ideen, warum es nicht auftaucht? Vielen Dank!

+0

arbeitet wrap_content Verwendung wird nicht funktionieren. Sie müssen das RelativeLayout in ein vertikales LinearLayout ändern und die RecyclerViews-Höhe mit einem layout_weight von 1 und einer layout_height von 0 dp für beide festlegen. – Neil

+0

kann es passieren, wenn Sie die Höhe so einstellen, dass sie dem übergeordneten in onCreateViewHolder entspricht. Infalted Layout der Freundesliste recycleview –

+0

@Neil Ich verstehe, was Sie sagen wollen, aber ich möchte, dass meine 'freundesliste_recycler-Ansicht unter dem' erscheint Follower_list' Recycler-Ansicht. Wenn ich das Gewicht auf 1 setze, nehme ich jeweils die Hälfte des Bildschirms, aber wenn 'friends_list' nicht vollständig ausgefüllt ist, gibt es zwischen der und der' followers_list' eine große Lücke. – user1871869

Antwort

3

Während die oben genannten Antworten funktionieren, behalten sie nicht das Wrap-Content-Verhalten der Recycler-Ansicht bei, für die Sie eine NestedScrollView verwenden müssen.

Für zB benötigen Sie so etwas wie dies zu tun: -

<android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <include 
      layout="@layout/drawer_view_header" 
      android:id="@+id/navigation_header"/> 

     <android.support.v7.widget.RecyclerView 
      android:layout_below="@id/navigation_header" 
      android:id="@+id/friends_list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 

     <android.support.v7.widget.RecyclerView 
      android:layout_below="@id/friends_list" 
      android:id="@+id/followers_list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 

    </RelativeLayout> 

</android.support.v4.widget.NestedScrollView> 

Oder Sie können auch eine LinearLayout mit vertikaler Ausrichtung in Ihrem NestedScrollView verwenden.

* Hinweis: - dies wird nur mit Recycler Blick über 23.2.0

compile 'com.android.support:recyclerview-v7:23.2.0' 
+1

Ziemlich sicher, das ist die richtige Antwort. – Neil

0

Sie müssen Höhe für die recyclerview gesetzt android Gewicht bieten in verschiedenen Bildschirmgröße

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="2"> 

    <include 
     layout="@layout/drawer_view_header" 
     android:id="@+id/navigation_header"/> 

    <android.support.v7.widget.RecyclerView 
     android:layout_below="@id/navigation_header" 
     android:id="@+id/friends_list" 
     android:layout_width="match_parent" 
     android:layout_height="150dp" 
     android:layout_weight="1"/> 

    <android.support.v7.widget.RecyclerView 
     android:layout_below="@id/friends_list" 
     android:id="@+id/followers_list" 
     android:layout_width="match_parent" 
     android:layout_height="150dp" 
     android:layout_weight="1"/> 

</RelativeLayout> 
+0

Was ist, wenn ich die Layout_Height nicht hart codieren möchte? Ich würde es vorziehen, nicht, weil abhängig von der Größe der Recycler-Ansicht würde ich bestimmte Inhalte blockieren – user1871869

+0

, wenn Sie nicht hart Layout_height wollen, können Sie Set 'android: layout_height = "0dp" android: layout_weight = "1" ' stattdessen. Dadurch wird die Höhe angepasst. – SaravInfern

0
<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <include 
       layout="@layout/drawer_view_header" 
       android:id="@+id/navigation_header"/> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/friends_list" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1"/> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/followers_list" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1"/> 

    </LinearLayout> 
0

Seit Höhe von ersten RecyclerView ist wrap_content einzustellen, um zu sehen, wird Ihre zweite RecyclerView nicht zeigen, bis, Die erste RecyclerView belegt die gesamte Höhe Ihres Layouts, wenn Sie mehr Elemente darin haben.

Ihr Problem zu lösen, verwenden LinearLayout als root an und bietet sowohl Ihre RecyclerView s gleich layout_weight und layout_height="0dp".

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <include 
     layout="@layout/drawer_view_header" 
     android:id="@+id/navigation_header"/> 

    <android.support.v7.widget.RecyclerView 
     android:layout_below="@id/navigation_header" 
     android:id="@+id/friends_list" 
     android:layout_width="match_parent" 
     android:layout_height="0dp"  
     android:layout_weight="1"/> <--- 

    <android.support.v7.widget.RecyclerView 
     android:layout_below="@id/friends_list" 
     android:id="@+id/followers_list" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"/> <--- 

</LinearLayout> 

Dies zeigt zwei RercyclerViews mit gleichem Platz (Höhe) belegt.

+0

Werfen Sie einen Blick auf diese auch: http: // Stackoverflow.com/questions/37977521/how-to-place-adview-unter-the-recyclerview-bitte-see-details BITTE! –