Как я могу отобразить большую высоту TextView в строке ListView? - PullRequest
0 голосов
/ 24 мая 2011

У меня есть ListView, который выглядит следующим образом: enter image description here

Обратите внимание, как TextView обрезается с помощью elipses.Как я могу убедиться, что весь TextView виден внутри ListView?

Вот мой XML для строки (текстовое представление называется bodyTextView):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="horizontal"
      android:padding="4px">
      <ImageView android:id="@+id/avatarImageView"
          android:layout_width="48px"
          android:layout_height="48px"/>
      <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical"
          android:paddingLeft="4px">
          <LinearLayout
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:layout_weight="1"
             android:gravity="center_vertical">
              <TextView android:id="@+id/usernameTextView"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:gravity="left"
                 android:textStyle="bold"
                  android:singleLine="true"
                  android:ellipsize="end"
                  android:textColor="#444444"
                  android:padding="0px"/>

              <TextView android:id="@+id/bodyTextView"
                 android:orientation="vertical"
                 android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:singleLine="false"
                  android:textColor="#666666"
                  android:maxLines="5"
                  android:ellipsize="end"/>
          <TextView android:id="@+id/dateTextView"
                 android:orientation="vertical"
                 android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:singleLine="true"/>
          </LinearLayout>
      </LinearLayout>
  </LinearLayout>

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Set ellipsize = "none".Кроме того, не забудьте указать достаточно большой maxLines.

0 голосов
/ 25 октября 2011

На самом деле, ellipsize = "none" не повлияет на ширину элемента.

Чтобы элемент отображал все его содержимое в LinearLayout, вам нужно установить его layout_width или layout_height (в зависимости от того, что применимо) в «wrap_content», а затем убедиться, что другие элементы в LinearLayout не будут занимать пространство сначала , Даже с этой опцией, SingleLine TextView по-прежнему будет иметь размер эллипса, как только он заполнит ширину окружающего макета, конечно.

Как сделать так, чтобы другие элементы играли хорошо? Убедитесь, что они не также установлены на параметр fill_ * или wrap_content. Простой способ отобразить несколько TextViews, один из которых занимает все необходимое пространство, а другие играют красиво, это: Установите основной параметр в layout_width «wrap_content» с layout_weight равным «0» (это вес по умолчанию, вы не нужно устанавливать его), а затем установить остальные для layout_width "0dip" с layout_weight "1". Это даст первичный TextView макету с заданной шириной, соответствующей содержимому, а другие TextView с эффективной шириной нуля. Затем макет увидит layout_weights и изменит размеры других TextView, чтобы занять оставшееся пространство.

...