Обработка макетов в Android - PullRequest
       0

Обработка макетов в Android

0 голосов
/ 03 сентября 2011

У меня есть собственный макет списка.Содержание списка должно быть,

+--------------+-------------+------------+
|an image icon | text label  |a checkbox  |
+--------------+-------------+------------+
  • изображение всегда должно быть выровнено по левому краю
  • флажок всегда должен быть выровнен по правому краю
  • Текстовая метка должна занимать оставшееся пространство.

Моя проблема в том, что флажки не выровнены по правому краю экрана.Он занимает место в зависимости от размера текстовой метки.Если метка слишком большая, флажок никогда не отображается / отображается наполовину.

Пример файла макета следующим образом

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TableLayout android:id="@+id/tableLayout1"
    android:layout_width="match_parent" android:layout_height="wrap_content">
    <TableRow android:id="@+id/tableRow1" android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView android:id="@+id/imageView1" android:src="@drawable/icon"
            android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
        <TableLayout android:id="@+id/tableLayout2"
            android:layout_width="match_parent" android:layout_height="wrap_content">
            <TableRow android:id="@+id/tableRow5" android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <TextView android:layout_width="wrap_content"
                    android:text="TextView" android:id="@+id/textView1"
                    android:layout_height="wrap_content"></TextView>
            </TableRow>
            <TableRow android:id="@+id/tableRow6" android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <TextView android:text="TextView" android:id="@+id/textView2"
                    android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
            </TableRow>
            <TableRow android:id="@+id/tableRow7" android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <TextView android:text="TextView" android:id="@+id/textView3"
                    android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
            </TableRow>
            <TableRow android:id="@+id/tableRow8" android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <TextView
                    android:text="x"
                    android:id="@+id/textView4" android:layout_width="wrap_content"
                    android:layout_height="wrap_content"></TextView>
            </TableRow>
        </TableLayout>
        <CheckBox android:text="" android:id="@+id/checkBox1"
            android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox>
    </TableRow>

</TableLayout>

</LinearLayout>

Ответы [ 3 ]

3 голосов
/ 03 сентября 2011

Играть со свойством layout_weight и попробуйте этот пример:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
        <ImageView
                android:layout_width="fill_parent"
                android:src="@drawable/icon"
                android:layout_height="wrap_content"
                android:layout_weight="1">
        </ImageView>
        <LinearLayout
                android:layout_width="fill_parent"
                android:orientation="vertical"
                android:layout_height="wrap_content"
                android:layout_weight="1">
            <TextView
                    android:layout_width="fill_parent"
                    android:text="some text 1"
                    android:layout_height="wrap_content">
            </TextView>
            <TextView
                    android:layout_width="fill_parent"
                    android:text="some text 2"
                    android:layout_height="wrap_content">
            </TextView>
        </LinearLayout>
        <CheckBox
                android:layout_width="fill_parent"
                android:layout_weight="1"
                android:layout_height="wrap_content">
        </CheckBox>
    </LinearLayout>
</LinearLayout>
1 голос
/ 03 сентября 2011

используйте это

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/relativeLayout1">

        <ImageView android:id="@+id/imageView1"
    android:layout_height="wrap_content" android:layout_width="wrap_content"
    android:src="@drawable/icon" android:layout_alignParentTop="true"></ImageView>
        <CheckBox android:id="@+id/checkBox1"
    android:layout_alignParentTop="true" android:text="CheckBox"
    android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignParentRight="true"></CheckBox>
        <TextView android:text="@string/hello" android:id="@+id/TextView1"
        android:layout_toRightOf="@id/imageView1" android:layout_toLeftOf="@id/checkBox1"
    android:layout_height="wrap_content" android:layout_width="fill_parent"></TextView>

    </RelativeLayout>
0 голосов
/ 03 сентября 2011

Если вы исправите ширину textview, то флажок будет установлен справа, или если вы вставите какой-нибудь длинный текст в textview, тогда только ваш CheckBox будет справа.

Другой вариант заключается в том, что вы можете использовать Относительное расположение и соответственно установить Компоненты ....

Может ли мое решение помочь вам.

Все лучшее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...