Высота строки GridView

У меня есть GridView, который отображает изображения, которые, к сожалению, разных размеров. Они показаны между двумя строками текста:

text1.1                text1.2
ImageView(IMAGE1)      ImageView(IMAGE2)
text2.1                text2.2

text3.1
ImageView(IMAGE3)
text4.1

так далее....

Если IMAGE1 имеет ту же высоту, что и IMAGE2, все в порядке, но если IMAGE1 длиннее IMAGE2, text2.1 будет работать с text3.1 (заполнение, кажется, не очень помогает, так как его слишком много, когда изображения такой же высоты).

Я знаю, что есть способ растянуть изображения в ImageView, чтобы они имели одинаковую высоту, но возможно ли сохранить изображения как есть и как-то установить высоту строки?

3 ответа

Решение

Вы контролируете высоту своих рядов, благодаря тому, что вы в них вкладываете. Поскольку в ваших ячейках, по-видимому, имеется более одного виджета, они предположительно заключены в LinearLayout или что-то. Установите свой LinearLayouts быть определенной высотой, и все строки будут этой высотой.

Лично я думаю, что вы должны изменить размеры своих изображений, если у вас будет текст выше и ниже каждого изображения для каждой ячейки.

Используйте drawable в качестве фона для Layout, который является вашей ячейкой сетки, и определите его для рисования с помощью:

<size android:height="<some height>" />

Например:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
<solid android:color="#ffffff"/>
<size android:height="60dip" />
</shape>

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

Перекрытие строк в GridView: как сделать так, чтобы высота строки подходила для самого высокого элемента?

Другие вопросы по тегам