在将回收站视图与LinearLayoutManager.HORIZONTAL和高度设置为wrap_content
一起使用时,是否要使列表项具有相同的高度?
看起来确实如此,并且某些文本被截断了。我该怎么解决?
这是商品的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/boundaries"
android:paddingTop="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:layout_marginEnd="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="16dp"
android:layout_height="16dp"
android:orientation="vertical"
android:gravity="center"
>
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_gravity="center"
android:scaleType="fitCenter"
android:gravity="center"
android:src="@drawable/my_icon”
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:layout_marginStart="12dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:maxWidth="200sp"
android:text="Some text of various length"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:includeFontPadding="false"
android:layout_marginStart="12dp"
android:layout_marginBottom="16dp"
android:gravity="bottom"
android:text="Some text that is not more than a line"
/>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
RecyclerView
默认保持相同的高度。它使用可见项目视图布局中的最大高度作为渲染时的高度。因此,这会导致文字截断的问题,因为可能存在一个内容比可见项目大的项目。
我认为,创建自定义布局管理器like this guy did并不需要太多。为了提高性能和可用性,我认为最好猜测项目视图的最大高度,并将其设置为RecyclerView height作为dp大小之类的常量。
如果您确实想设置正确的高度,则需要编写一些Java代码来估计项目视图的实际高度。 RecyclerView应该具有自己的高度,这是在渲染时确定的。内容是动态的。因此,您需要编写一些代码来估算所有项目视图,并找到最大高度以在Java代码中设置为RecyclerView的高度。