小知识解决大问题,问题处理+经验分享,大家好,我是时代新人!今天给大家分享一条小经验,请往下看:
多个RecyclerView同时使用的时候,比如线性垂直排布三个RecyclerView,那么会出现一个问题就是第一个RecyclerView的数据条数显示不全,只能显示一屏的内容,比如有10条数据,一屏只能显示5条,那么第一个RecyclerView就只显示5条数据,然后就显示下一个RecyclerView的数据了
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="visible">
<!-- 第一部分 -->
<RelativeLayout
android:id="@+id/rl_theCaseMore"
android:layout_width="match_parent"
android:layout_height="@dimen/dimen_40dp"
android:paddingLeft="@dimen/dimen_14dp"
android:paddingRight="@dimen/dimen_14dp"
android:background="@color/gray_F7">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:textSize="@dimen/sp_14"
android:textColor="@color/black"
android:text="@string/the_case"/>
<ImageView
android:id="@+id/img_theCaseMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@mipmap/vibration_college_icon_more"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/img_theCaseMore"
android:layout_marginRight="@dimen/dp_4"
android:text="@string/more"
android:textSize="@dimen/sp_12"
android:textColor="@color/gray_7C"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_theBaseSearched"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/dimen_14dp"
android:paddingRight="@dimen/dimen_14dp"/>
<!-- 第二部分 -->
<RelativeLayout
android:id="@+id/rl_productIntroductionMore"
android:layout_width="match_parent"
android:layout_height="@dimen/dimen_40dp"
android:paddingLeft="@dimen/dimen_14dp"
android:paddingRight="@dimen/dimen_14dp"
android:background="@color/gray_F7">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:textSize="@dimen/sp_14"
android:textColor="@color/black"
android:text="@string/product_introduction"/>
<ImageView
android:id="@+id/img_productIntroductionMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@mipmap/vibration_college_icon_more"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/img_productIntroductionMore"
android:layout_marginRight="@dimen/dp_4"
android:text="@string/more"
android:textSize="@dimen/sp_12"
android:textColor="@color/gray_7C"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_productIntroductionSearched"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/dimen_14dp"
android:paddingRight="@dimen/dimen_14dp"/>
<!-- 第三部分 -->
<RelativeLayout
android:id="@+id/rl_vibrationBasedMore"
android:layout_width="match_parent"
android:layout_height="@dimen/dimen_40dp"
android:paddingLeft="@dimen/dimen_14dp"
android:paddingRight="@dimen/dimen_14dp"
android:background="@color/gray_F7">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:textSize="@dimen/sp_14"
android:textColor="@color/black"
android:text="@string/vibration_based"/>
<ImageView
android:id="@+id/img_vibrationBasedMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@mipmap/vibration_college_icon_more"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/img_vibrationBasedMore"
android:layout_marginRight="@dimen/dp_4"
android:text="@string/more"
android:textSize="@dimen/sp_12"
android:textColor="@color/gray_7C"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_vibrationBasedSearched"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/dimen_14dp"
android:paddingRight="@dimen/dimen_14dp"/>
</LinearLayout>
</ScrollView>
解决办法,是给第一个RecyclerView的外层套一层线性布局就好了,像下面这样,只处理第一个RecyclerView就行,后面两个RecyclerView显示是正常的不用管。亲测有效,如果您有更好方法欢迎讨论
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_theBaseSearched"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/dimen_14dp"
android:paddingRight="@dimen/dimen_14dp"/>
</RelativeLayout>