Два элемента, расположенные вертикально внутри TableRow

У меня есть дизайн макета, реализующий TableLayout для Android. Вот изображение моего текущего дизайна, показанное по этой ссылке:

введите здесь описание изображения

«Подробности» и TextView под ним находятся в разных TableRow (две таблицы). Я хочу сделать «Подробности» и TextView только в одной TableRow. Я пытался поместить их в один TableRow, но TextView всегда отображался справа от «Детали», а не под ним по вертикали.

Вот код этого изображения:

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dip"
    android:background="@drawable/labeldetail_background"
    android:paddingBottom="10dip" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="right"
        android:paddingRight="20dip"
        android:paddingTop="5dip"
        android:text="Detail"
        android:textColor="#000000" />
</TableRow>
<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/labeldetail_background"
    android:gravity="center_horizontal"
    android:paddingBottom="10dip"
    android:paddingLeft="15dip"
    android:paddingRight="15dip"
    android:paddingTop="10dip" >
    <TextView
        android:layout_width="285dip"
        android:layout_height="wrap_content"
        android:background="@drawable/text_background"
        android:gravity="center_horizontal"
        android:maxLines="10"
        android:padding="6dip"
        android:singleLine="false"
        android:text="Lorem Ipsum - test text for detail of the information, multiline textview" />
</TableRow>

Возможно ли, чтобы два элемента внутри одного TableRow располагались вертикально? Если да, подскажите как

заранее спасибо


person FathulAzis    schedule 25.04.2014    source источник


Ответы (4)


Внутри tablerow оберните детали и textView в LinearLayout с вертикальной ориентацией.

 <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:background="@drawable/labeldetail_background"
        android:paddingBottom="10dip" >

        <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="right"
            android:paddingRight="20dip"
            android:paddingTop="5dip"
            android:text="Detail"
            android:textColor="#000000" />

        <TextView
            android:layout_width="285dip"
            android:layout_height="wrap_content"
            android:background="@drawable/text_background"
            android:gravity="center_horizontal"
            android:maxLines="10"
            android:padding="6dip"
            android:singleLine="false"
            android:text="Lorem Ipsum - test text for detail of the information, multiline textview" />
    </LinearLayout>
    </TableRow>
person Akanksha Hegde    schedule 25.04.2014
comment
Большое спасибо, это работает! Однажды я думал сделать TableLayout внутри LinearLayout для этого случая, но я не могу представить, что это работает. - person FathulAzis; 25.04.2014

Попробуй это..

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dip"
    android:gravity="center_vertical"
    android:background="@drawable/labeldetail_background"
    android:paddingBottom="10dip" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="right"
        android:paddingRight="20dip"
        android:paddingTop="5dip"
        android:text="Detail"
        android:textColor="#000000" />
    <TextView
        android:layout_width="285dip"
        android:layout_height="wrap_content"
        android:background="@drawable/text_background"
        android:gravity="center_horizontal"
        android:maxLines="10"
        android:padding="6dip"
        android:singleLine="false"
        android:text="Lorem Ipsum - test text for detail of the information, multiline textview" />

</TableRow>
person Hariharan    schedule 25.04.2014
comment
Это по-прежнему не работает. Слова Detail располагаются вертикально. De t a i l располагаются вертикально. - person FathulAzis; 25.04.2014
comment
Но стоит исследовать, я попытаюсь изменить некоторые из них. - person FathulAzis; 25.04.2014

Вы можете просто обернуть свои элементы в LinearLayout.

person michalis    schedule 25.04.2014
comment
Да, приведенный ниже код AHedge показывает это. Спасибо. Я сделаю это для другого взгляда на мой макет - person FathulAzis; 25.04.2014

Сначала создайте линейный макет с вертикальной ориентацией. Добавьте любое количество представлений к этому линейному макету. Затем позже добавьте этот линейный макет в строку таблицы.

person Suhas K    schedule 25.04.2014