gpt4 book ai didi

android - 水平回收器 View 会截断文本,因为它为所有列表项保持相同的高度

转载 作者:太空狗 更新时间:2023-10-29 13:46:28 25 4
gpt4 key购买 nike

当使用带有 LinearLayoutManager.HORIZONTAL 且高度为 wrap_content 的回收器 View 时,它是否试图保持列表项具有相同的高度?似乎确实如此,并且一些文本被截断了。我该如何解决这个问题?
这是项目的布局

<?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>

最佳答案

RecyclerView 默认保持相同的高度。它使用可见项目 View 布局的最大高度作为渲染时的高度。所以这会导致文本截断的问题,因为可能有一个项目的内容比可见项目大。

在我看来,创建自定义布局管理器的必要性不大like this guy did .为了性能和可用性,我认为最好猜测项目 View 的最大高度并将其设置为 RecyclerView 高度作为 dp 大小中的常量。

如果你真的想设置正确的高度,你需要写一些java代码来估计项目 View 的实际高度。RecyclerView 应该有自己的高度,这是在渲染时确定的。内容是动态的。因此,您需要编写一些代码来估计所有项目 View ,并找到最大高度以在 Java 代码中设置为 RecyclerView 的高度。

关于android - 水平回收器 View 会截断文本,因为它为所有列表项保持相同的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53339381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com