【问题标题】:android studio RecyclerView widthandroid studio RecyclerView 宽度
【发布时间】:2021-06-16 02:40:29
【问题描述】:

我希望单元格的宽度根据内部文本的长度而改变。 目前,width = 160dp 是固定的,但是 如果我把 wrapcontent 可以看到,每个单元格都是根据数据的长度来设置的,即使它们对应的是同一列。

行数可以更改,但列数为4。

我想浏览该列中的所有数据内容并设置该列的宽度以适合该列中最长的文本。

RecyclerViewitem.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="160dp"
            android:layout_height="match_parent"
            android:text=""
            android:padding="3dp"
            android:id="@+id/tv_po"
            android:textStyle="bold"
            android:gravity="center" />

        <TextView
            android:layout_width="160dp"
            android:layout_height="match_parent"
            android:text=""
            android:padding="3dp"
            android:id="@+id/tv_qty"
            android:textStyle="bold"
            android:gravity="center" />

        <TextView
            android:layout_width="160dp"
            android:layout_height="match_parent"
            android:text=""
            android:padding="3dp"
            android:id="@+id/tv_material"
            android:textStyle="bold"
            android:gravity="center" />

        <TextView
            android:layout_width="350dp"
            android:layout_height="match_parent"
            android:text=""
            android:padding="3dp"
            android:id="@+id/tv_info"
            android:textStyle="bold"
            android:gravity="center" />
    </LinearLayout>
</LinearLayout>

【问题讨论】:

    标签: android android-recyclerview width


    【解决方案1】:

    我不确定您是否愿意这样做,RV adapter 一次加载一个视图,直到 RecyclerView 已满。每次适配器加载更大的View 时,所有现有的Views 都需要重新绘制。然后,如果最大的视图从屏幕中删除,您将需要刷新所有视图以匹配新的现有视图。这将使用大量资源来不断重新加载图像,并可能导致应用程序冻结。但是,如果您真的热衷于进行设置,请查看以下问题。

    How to set textview height for the largest string in android recyclerview?

    【讨论】:

      【解决方案2】:

      您可以使用芯片(材料设计)来满足您的要求。 https://material.io/components/chips/android#using-chips

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多