Как заставить ImageView заполнить вертикально в RelativeLayout - PullRequest
4 голосов
/ 13 июля 2009

Я помещаю ImageView и TextView в RelativeLayout, который используется в качестве элементов списка, и хочу, чтобы ImageView рос вертикально с номером строки TextView. Рисунок ImageView представляет собой png изображение вертикальной черты.

При следующей компоновке, которая выглядит хорошо в представлении Layout в Eclipse, ImageView не заполняет высоту RelativeView во время выполнения. Вместо этого он всегда сохраняет высоту исходного изображения.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent" >
   <ImageView android:id="@+id/iv"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:layout_alignParentLeft="true"
       android:src="@drawable/vbar"
       android:adjustViewBounds="false"
       android:scaleType="fitXY"/>
   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:singleLine="false"
       android:layout_toRightOf="@id/iv"
       android:layout_alignParentBottom="true" />
</RelativeLayout>

Почему это не работает так, как я ожидаю (или, как показано в представлении Eclipse Layout) ?

Ответы [ 2 ]

1 голос
/ 08 января 2013

Я сделал некоторые изменения в вашем коде.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:singleLine="false"
        android:text="@string/text" />

    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_above="@id/tv"
        android:adjustViewBounds="false"
        android:scaleType="fitXY" />

</RelativeLayout>

Теперь это дает правильный вывод. Я сначала объявил textview и выровнял его по родительскому основанию. Затем объявил imageview и разместил его на вершине textview. Таким образом, просмотр изображений начнется чуть выше текстового обзора и займет всю оставшуюся высоту. Я также проверил для многострочного просмотра текста. Надеюсь, это поможет.

0 голосов
/ 30 апреля 2012

Я бы сделал пару вещей:

  1. Упростите макет, объединив TextView с «drawableLeft».
  2. Сделайте изображение 9-патченным, чтобы оно соответственно росло.
...