2017-07-26 66 views
-1

我試圖實現某種聊天問題(垂直RecyclerView),並有垂直Recyclerview下的答案(水平RecyclerView) 我已經設法實現了我在我心中,但: 現在我有: 垂直rv工作正常,水平rv在視圖的底部; 我想要的是: 我想要在垂直rv下面找到答案,因爲它會展開,所以如果垂直rv有一個itemview,它應該在它的正下方,並且隨着它展開直到水平rv到達視圖的底下面的水平RecyclerView縱向RecyclerView

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/verticalRecyclerView" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:scrollbars="vertical" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/horizontalRecyclerView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:orientation="horizontal"/> 

</LinearLayout> 

回答

0

編輯XML來

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/verticalRecyclerView" 
    android:layout_width="match_parent"  
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:scrollbars="vertical" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/horizontalRecyclerView" 
    android:layout_width="wrap_content"  
    android:layout_height="0dp" 
    android:layout_weight="0.5" 
    android:layout_gravity="center_horizontal" 
    android:orientation="horizontal"/> 

</LinearLayout> 

使用代碼用於水平recyclerview

LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); 

RecyclerView myList = (RecyclerView)findViewById(R.id.my_recycler_view); 
myList.setLayoutManager(layoutManager); 

和用於垂直recyclerview使用

LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); 

RecyclerView myList = (RecyclerView)findViewById(R.id.my_recycler_view); 
myList.setLayoutManager(layoutManager); 
+0

無法正常工作,垂直回收站下方有很多空的空間,即使它只有一個物品,一旦其填充,水平recyclerview下面有很多空間 – Dude

+0

您必須爲回收站查看重量如果您設置了wrap_content,則回收站視圖會在其包含時隱藏較低的回收站視圖更多的項目 –

+0

是的,但這樣,我最終有佈局中間的水平rv直到垂直視圖填充,然後一旦它填充,horionztal recyclerview下面有空的空間 – Dude

0

只需添加weightsum屬性的LinearLayout機器人:weightsum = 1.5,只是在適配器確保適配器沒有空的空間,如果你給它也將影響 ,如果你同意我的回答,請投票

+0

請在回答中附上實際的代碼,以便提問者知道如何實現它。 – UmarZaii

0
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:weightsum = "1.5" 
android:orientation="vertical"> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/verticalRecyclerView" 
    android:layout_width="match_parent"  
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:scrollbars="vertical" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/horizontalRecyclerView" 
    android:layout_width="match_parent"  
    android:layout_height="0dp" 
    android:layout_weight="0.5" 
    android:layout_gravity="center_horizontal" 
    android:orientation="horizontal"/> 

</LinearLayout> 
相關問題