2010-03-03 2 views
26

У меня есть 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, чтобы они были одинаковой высоты, но возможно ли сохранить изображения как есть и установить высота строки как-нибудь?

ответ

28

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

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

+1

я узнал, что, как хорошо - - В принципе, я не видел, что вы можете установить ширину и высоту компонента в макете вместо wrap_component или fill_parent .... – kozyr

+27

это не работает для меня, независимо от того, что я накладываю на линейную высоту, GridView ведет себя так же ... –

+0

layout_height для LinearLayout с точки зрения значений размерности не работает. – lalitm

7

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

<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> 
+2

Вы можете просто установить layout_height корневого представления на 60dip. –

Смежные вопросы