Android Table Layout 视图过多

问题描述

我想在一个片段中显示几个表。最小的表是 5x8,最大的是 5x16。表格显示静态字符串资源。如果我为每个单元格添加一个 textView,那么一个 xml 布局的视图过多(Android Studio 在达到 80 次视图后开始抱怨),如果我忽略此警告,则可能较旧/较弱的手机真的会很挣扎显示所有这些视图。所以我决定为每一列只保留一个 textView 并将 \n 添加到这样的字符串资源中:

表格

<TableLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:stretchColumns="*">
<TableRow style="@style/HeaderRow">
                        <TextView android:text="@string/table_header1"
                            style="@style/HeaderText"/>
                        <TextView android:text="@string/table_header2"
                            style="@style/HeaderText"/>
                        <TextView android:text="@string/table_header3"
                            style="@style/HeaderText"
                            android:textAlignment="textStart"/>
                        <TextView android:text="@string/table_header4"
                            style="@style/HeaderText"
                            android:textAlignment="textStart"/>
                        <TextView android:text="@string/table_header5"
                            style="@style/HeaderText"
                            android:textAlignment="textStart"/>
                    </TableRow>
<TableRow style="@style/Bottomrow">
                        <TextView android:text="@string/table_column1"
                            style="@style/BodyText"
                            android:textAlignment="textStart"/>
                        <TextView android:text="@string/table_column2"
                            style="@style/BodyText"
                            android:textAlignment="textStart"/>
                        <TextView android:text="@string/table_column3"
                            style="@style/BodyText"
                            android:textAlignment="textStart"/>
                        <TextView android:text="@string/table_column4"
                            style="@style/BodyText"
                            android:textAlignment="textStart"/>
                        <TextView android:text="@string/table_column5"
                            style="@style/BodyText"
                            android:textAlignment="textStart"/>
</TableRow>
</TableLayout>

字符串示例

<string name="table_column1">c1r1\n\n c1r2\n\n c1r3\n\n c1r4\n\n c1r5 ...</string>

它可以工作并使用最少的视图,但我无法为单个行或单元格添加边框或背景,因为从技术上讲,它只有 2 行和 4 个单元格。在这种情况下,什么是更好的解决方案?

此外,由于有多个长表和宽表,我使用嵌套/水平 scrollView 而不能使用 RecyclerViewListView

我也想过有 2 个 RecyclerViews,水平在垂直里面,没有 scrollViews,但我不知道这对性能来说有多好/多坏。 >

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)