回收器视图 在回收器视图中,内部回收器视图项目在某些设备上无法完全显示



我有一个单滚动屏幕的要求。主要活动有一个回收器视图。此行项目包括 2 个回收器视图,其中一个是水平的,另一个是垂直的。设计此视图的最佳方法是什么,请告诉我。

我面临的当前问题是内部垂直回收器视图项目未完全显示。

非常感谢您的帮助!

"活动主.xml">

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants"
android:orientation="vertical">
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center"
android:indeterminate="false"
android:minHeight="50dp"
android:minWidth="50dp"
android:padding="@dimen/dp_5"
android:progress="1"
android:visibility="gone" />
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_margin="@dimen/dp_5"
android:layout_weight="1"
android:visibility="visible" />
</LinearLayout>

活动回收器的"row_item.xml"视图

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_cornered_grey_stroke_background"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="start"
android:text="Title"
android:textColor="@color/sky_blue"
android:textSize="18sp"
android:textStyle="bold" />
<View
android:id="@+id/view_line"
android:layout_width="2dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:background="@color/sky_blue" />
<TextView
android:id="@+id/tv_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center"
android:gravity="bottom"
android:text="2018-08-30"
android:textColor="@color/sky_blue"
android:textSize="@dimen/sp_15"
android:textStyle="normal" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:background="@color/sky_blue" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_images"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:visibility="gone" />
<TextView
android:id="@+id/tv_no_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:background="@null"
android:padding="5dp"
android:text="No item found"
android:textColor="@color/dark_greish"
android:textSize="14sp"
android:textStyle="bold"
android:visibility="gone" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_margin="@dimen/dp_5"
android:layout_weight="1"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>

rv_list的"row_item.xml">

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="start|center"
android:padding="5dp"
android:text="Name"
android:textColor="@color/dark_greish"
android:textSize="14sp"
android:textStyle="normal" />
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="@android:color/white"
android:padding="5dp" />
<TextView
android:id="@+id/tv_value_one"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.25"
android:gravity="start|center"
android:padding="5dp"
android:text="Value 1"
android:textColor="@color/dark_greish"
android:textSize="14sp"
android:textStyle="normal" />
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="@android:color/white"
android:padding="5dp" />
<TextView
android:id="@+id/tv_value_two"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.3"
android:gravity="start|center"
android:padding="5dp"
android:text="Value 2"
android:textColor="@color/dark_greish"
android:textSize="14sp"
android:textStyle="normal" />
</LinearLayout>

尝试将setRecycledViePool(viewPool(与最外层的recylerview适配器的onCreateViewHolder方法中的内部回收器视图一起使用。只需将内部回收器视图池的引用传递给此方法参数即可。

最新更新