我有两个简单的回收站视图,我想直接在彼此下方显示。这是我的布局:
<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>
我的navigationHeader
位于第一个名为friends_list
的回收站视图上方,工作正常,我可以看到friends_list
回收站视图,其android:layout_height="wrap_content"
但{{1}尽管我的followers_list
的所有内容都已显示,但回收器视图似乎并不显示。任何想法为什么它没有出现?谢谢!
答案 0 :(得分:3)
虽然上述答案确实有效,但他们不会保留Recycler视图的换行内容行为,因为您需要使用NestedScrollView
。
例如,你需要做这样的事情: -
<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>
或者您也可以在LinearLayout
中使用NestedScrollView
垂直对齐。
*注意: - 这只适用于23.2.0以上的回收商视图
compile 'com.android.support:recyclerview-v7:23.2.0'
答案 1 :(得分:0)
您必须为recyclerview设置高度 android提供重量来查看以调整不同的屏幕尺寸
<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>
答案 2 :(得分: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>
答案 3 :(得分:0)
由于第一个RecyclerView
的高度为wrap_content
,您的第二个RecyclerView
将不会显示,如果您有更多,RecyclerView
将占据您布局的所有高度其中的物品。
要解决您的问题,请以root身份使用LinearLayout
,并为layout_weight
提供相同的layout_height="0dp"
和RecyclerView
。
<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>
这将显示两个占用相同空间(高度)的RercyclerView。
答案 4 :(得分:0)
试试这个。它正在运作。
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
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=".MainActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingBottom="10dp"
android:text="Asia"
android:textStyle="bold" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/activity_horizontal_margin"
android:gravity="center_vertical"
android:paddingBottom="10dp"
android:text="Europe"
android:textStyle="bold" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/cardview"
android:textColor="#fff"
android:layout_weight="1"
android:id="@+id/select"
android:text="Select all"/>
<Button
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginLeft="5dp"
android:background="@drawable/cardview"
android:textColor="#fff"
android:layout_weight="1"
android:id="@+id/deselect"
android:text="Deselct all"/>
<Button
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:background="@drawable/cardview"
android:textColor="#fff"
android:id="@+id/next"
android:visibility="visible"
android:text="Next activity"/>
</LinearLayout>
</ScrollView>
</android.support.v4.widget.NestedScrollView>