Высота строки GridView - PullRequest
       15

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

26 голосов
/ 04 марта 2010

У меня есть 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 ]

28 голосов
/ 04 марта 2010

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

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

7 голосов
/ 28 декабря 2011

Используйте 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>
5 голосов
/ 03 октября 2011

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

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

...