В настоящее время я работаю над небольшим обновлением проекта, и у меня возникла проблема с Relative_Layout и fill_parent в представлении списка. Я пытаюсь вставить разделитель между двумя разделами в каждой строке, так же, как разделитель в журнале вызовов номеронабирателя по умолчанию. Я проверил исходный код Android, чтобы увидеть, как они это сделали, но я столкнулся с проблемой при репликации их решения.
Для начала вот мое расположение элементов строки:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dip"
android:layout_height="fill_parent"
android:maxHeight="64dip"
android:minHeight="?android:attr/listPreferredItemHeight">
<ImageView android:id="@+id/infoimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:src="@drawable/info_icon_big"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
<View android:id="@+id/divider"
android:background="@drawable/divider_vertical_dark"
android:layout_marginLeft="11dip"
android:layout_toLeftOf="@+id/infoimage"
android:layout_width="1px"
android:layout_height="fill_parent"
android:layout_marginTop="5dip"
android:layout_marginBottom="5dip"
android:layout_marginRight="4dip"/>
<TextView android:id="@+id/TextView01"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/ImageView01"
android:layout_toLeftOf="@+id/divider"
android:gravity="left|center_vertical"
android:layout_marginLeft="4dip"
android:layout_marginRight="4dip"/>
<ImageView android:id="@+id/ImageView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="@drawable/bborder"
android:layout_centerVertical="true"/>
</RelativeLayout>
Проблема, с которой я сталкиваюсь, заключается в том, что в каждой строке есть эскиз различной высоты (ImageView01). Если для свойства layout_height объекта RelativeLayout установить значение fill_parent, разделитель не масштабируется по вертикали для заполнения строки (он просто остается точкой в 1 пиксель). Если я установлю layout_height на «? Android: attr / listPreferredItemHeight», разделитель заполняет строку, но уменьшенные изображения уменьшаются. Я выполнил некоторую отладку в методе getView () адаптера, и кажется, что высота делителя не устанавливается должным образом, когда строка имеет правильную высоту.
Вот часть метода getView ():
public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
view = inflater.inflate(R.layout.tag_list_item, parent, false);
}
Остальная часть метода просто устанавливает соответствующий текст и изображения для строки.
Кроме того, я создаю объект inflater в конструкторе адаптера с помощью: inflater = LayoutInflater.from(context);
Я что-то упустил? Или fill_parent просто не работает с динамическими высотами?