问题描述
我想在一个片段中显示几个表。最小的表是 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 而不能使用 RecyclerView 或 ListView。
我也想过有 2 个 RecyclerViews,水平在垂直里面,没有 scrollViews,但我不知道这对性能来说有多好/多坏。 >
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)