2017-01-20 1 views
0

У меня есть GridView, и элементы в нем не занимают полную высоту. Было бы желательно, чтобы они растягивались так же, как и горизонтально. Могу ли я это достичь?Android GridView stretch row height

GridView предназначен для размещения оставшегося пространства в макете. Поэтому его высота варьируется. Но он определяется как не прокручиваемый, так как всегда есть более чем достаточно места. Есть ли решение без ручного расчета высоты для каждого элемента? Или, если я не могу в принципе вычислить желаемую высоту внутри адаптера?

Вид сетки определяется следующим образом:

<GridView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:id="@+id/menu_grid_view" 
     android:horizontalSpacing="8dp" 
     android:verticalSpacing="8dp" 
     android:isScrollContainer="false" 
     android:numColumns="3" 
     android:scrollbars="none" 
     android:stretchMode="columnWidth"/> 

Я также пробовал с layout_height=0,layout_weight=1 по пунктам. Но это был бы вложенный вес, и это не сработало.

+0

пост полный файл xml –

+0

См. Мой другой комментарий. Xml не проблема. Вес в GridView работает. Элементы внутри сетки не заполняют все пространство. И xml ist просто LinearLayout с кнопкой выше и выше сетки, ничего особенного. – patman

ответ

0

Может быть, вы хотите, чтобы это было сделано.

Вес будет работать только с линейной компоновкой.

Вы можете попробовать это Я надеюсь, что это поможет вам понять проблему, почему вы не получаете правильное расположение.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:weightSum="1"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight=".3" 
     android:text="textview"/> 

    <GridView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight=".7" 
     android:id="@+id/menu_grid_view" 
     android:horizontalSpacing="8dp" 
     android:verticalSpacing="8dp" 
     android:isScrollContainer="false" 
     android:numColumns="3" 
     android:scrollbars="none" 
     android:stretchMode="columnWidth"/> 

</LinearLayout> 
+0

Извините, но вы поняли это неправильно. GridView имеет правильный размер. Его элементы просто не заполняют пространство. Таким образом, предметы должны расти по высоте, а не самой сетке ... – patman

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

  • Нет связанных вопросов^_^