Проблема с таблицей строк в списке Android - PullRequest
0 голосов
/ 25 августа 2011

Я возился почти час и не понял этого, поэтому искал помощи.

Как вы можете видеть на моем изображении здесь, во втором ряду флажок не отображается. Это было вытеснено с экрана вправо из-за длинного текста.

rows

Мне бы хотелось, чтобы изображение слева всегда было в этом месте, а флажок справа - всегда в этом месте. Текст заголовка в середине должен помещаться между этими двумя вещами, оборачиваясь в столько строк, сколько ему нужно.

Я сделал это, установив свойство 'Ems', но я не думаю, что это был правильный способ решить эту проблему.

Вот XML:

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dp">
    <ImageView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:src="@drawable/bg_ffa_1" />
</LinearLayout>

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TableLayout 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent" 
        android:stretchColumns="1">
        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <LinearLayout 
                android:orientation="vertical" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="5dp">
                <TextView
                    android:id="@+id/article_row_title_label"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_column="1"
                    android:textColor="#3A3C3B"
                    android:textSize="12dp"
                    android:textStyle="bold"
                    android:inputType="textMultiLine"
                    android:text="Article 1" />
            </LinearLayout>
            <LinearLayout 
                android:orientation="vertical" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right">
                <CheckBox 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
            </LinearLayout>
        </TableRow>
    </TableLayout>
</LinearLayout>

Ответы [ 3 ]

0 голосов
/ 25 августа 2011

Ах!Я подозревал это.Как только я поставлю вопрос, я пойму его.

Ключ был в том, чтобы добавить

android:layout_weight="1"

к линейному макету, который обертывает текстовое представление, просто, когда вы знаете!

0 голосов
/ 25 августа 2011

Этот макет для вашего элемента списка должен дать вам желаемый результат:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  <ImageView    android:id="@+id/myImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"/>
  <TextView     android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toLeftOf="@id/myImage"/>
  <CheckBox     android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"/>
</RelativeLayout>
0 голосов
/ 25 августа 2011

Возможно, вам будет лучше с относительным расположением .

...