Высота строки 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>
Вот альтернативное решение, которое предварительно измеряет элементы и устанавливает высоту каждой ячейки равной максимальной высоте в этом ряду.