Как да приложа обхват на реда в оформлението на таблицата?

Как да приложа row_span към TableLayout?

Искам да направя нещо подобно на това изображение, но не знам как да го направя.

изображение на таблица

Какъв е правилният начин да направите нещо подобно?


person miguel    schedule 20.04.2013    source източник
comment
изглежда като възможен дубликат stackoverflow.com/questions/2189986/   -  person Onur A.    schedule 21.04.2013
comment
Не се дублира. Това не е отговорът на въпроса, който зададох.   -  person miguel    schedule 21.04.2013
comment
Имате ли някакво решение за това   -  person    schedule 05.01.2016


Отговори (2)


TableLayout не поддържа обхвати на редове, а само обхвати на колони. GridLayout поддържа обхвати на редове и колони:

GridLayout пример

(снимка от http://android-developers.blogspot.com/2011/11/new-layout-widgets-space-and-gridlayout.html)

person CommonsWare    schedule 20.04.2013

Малко измама (може би доста сложно за кодиране и валидно само за прост дизайн):

Направете 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, колкото искаме), втора колона (елемент, който ще заеме пространството на всички тези редове).

въведете описание на изображението тук

person Juan José Melero Gómez    schedule 25.04.2015
comment
пропуснах нещо? как правите два реда == две колони? трябва да поставите две оформления на таблици в един ред, за да постигнете две колони, след което във вложено оформление на таблица поставете редове и във второто оформление на таблица един ред или друго съдържание. след това във втория ред задайте span=2 - person ceph3us; 28.11.2015
comment
Съжалявам. това е грешка. Имах предвид две колони, а не два реда. Работата е там, че първата колона съдържа TableLayout с толкова редове, колкото искате да обхванете, а втората колона съдържа само един изглед. Ще редактирам. - person Juan José Melero Gómez; 29.11.2015
comment
Използвайки това за елемент от списък с редове, точно това, от което имах нужда ха - person MrJoshFisher; 22.10.2018