Как да приложа row_span към TableLayout?
Искам да направя нещо подобно на това изображение, но не знам как да го направя.
Какъв е правилният начин да направите нещо подобно?
Как да приложа row_span към TableLayout?
Искам да направя нещо подобно на това изображение, но не знам как да го направя.
Какъв е правилният начин да направите нещо подобно?
TableLayout
не поддържа обхвати на редове, а само обхвати на колони. GridLayout
поддържа обхвати на редове и колони:
(снимка от http://android-developers.blogspot.com/2011/11/new-layout-widgets-space-and-gridlayout.html)
Малко измама (може би доста сложно за кодиране и валидно само за прост дизайн):
Направете TableLayout
. Поставете друг TableLayout
в първата колона и изглед, който искате да има обхват на реда във втората колона. Този вътрешен TableLayout
може да има толкова TableRows
, колкото желаете да обхваща другият изглед.
Ето кода:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/activity_horizontal_margin"
tools:context=".MainActivity">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="3">
<TableLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_blue_dark">
<TextView
android:text="Row 1"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_blue_light">
<TextView
android:text="Row 2"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_blue_bright">
<TextView
android:text="Row 3"/>
</TableRow>
</TableLayout>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1.5"
android:text="Second column, rowspan 3"
android:background="@android:color/holo_purple"
android:gravity="center"/>
</TableRow>
</TableLayout>
</LinearLayout>
И така, обобщете:
TableLayout: първа колона (TableLayout с толкова TableRows, колкото искаме), втора колона (елемент, който ще заеме пространството на всички тези редове).