Я пытаюсь создать макет для таблицы, которая выглядит следующим образом:Android Каков канонический способ создания макета для табличных данных?
Столбцы фиксированы, а строки могут динамически добавлять/удалять.
Поэтому я попытался использовать TableLayout для разработки «скелета» моего стола.
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableLayout
android:id="@+id/tblSales"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:shrinkColumns="*"
android:stretchColumns="*">
<TableRow
android:id="@+id/tblSalesCol"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:text="Inventory Info"
android:textSize="20sp"
android:layout_width="120dp"
/>
<TextView
android:text="Sold Price"
android:textSize="20sp"
android:layout_width="40dp"
/>
<TextView
android:text="Sold Qty"
android:textSize="20sp"
android:layout_width="5dp"
/>
</TableRow>
<View style="@style/Divider"/>
</TableLayout>
</ScrollView>
И попытался разработки макета пользовательского TableRow для динамически добавляемых строк
<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp">
<TextView
android:id="@+id/tblrowSales_inv_name"
android:textStyle="bold"
android:textSize="15sp"
android:textColor="#000000"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_height="30dp"
android:layout_width="200dp"/>
<TextView
android:id="@+id/tblrowSales_detail"
android:textStyle="bold"
android:textColor="#000000"
android:layout_height="20dp"
android:layout_width="200dp"
android:layout_below="@id/tblrowSales_inv_name"
/>
<TextView
android:id="@+id/tblrowSales_sold_price"
android:textStyle="normal"
android:textColor="#000000"
android:layout_height="50dp"
android:layout_width="100dp"
android:layout_toRightOf="@id/tblrowSales_detail"/>
<TextView
android:id="@+id/tblrowSales_sold_qty"
android:textStyle="normal"
android:textColor="#000000"
android:layout_height="50dp"
android:layout_width="50dp"
android:layout_toRightOf="@id/tblrowSales_sold_price"/>
</RelativeLayout>
</TableRow>
И главная проблема заключается в том, что с помощью RelativeLayout, я не могу пропорционально установить ширину моих полей (С layout_weight поддерживается только на linearlayout).
Я также не думаю, что ширина полей для строк будет синхронизироваться с ширинами столбцов, определенными в TableLayout.
В целом, этот подход просто чувствует себя грязным и очень неправильным.
Каков правильный способ создания таблицы, показанной в примере?
@ l46kok Является ли это полезно? – LaurentY