2017-01-20 18 views
0

私はGridViewを持っていて、その中の項目は完全な高さを取っていません。彼らは彼らが水平にやっているのと同じように伸ばすことが望ましいだろう。私はそれを達成することはできますか?Android GridViewストレッチ行の高さ

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"/> 

Iはまた、アイテムにlayout_height=0,layout_weight=1でそれを試してみました。しかし、それは入れ子にされた重さであり、動作しません。

+0

投稿完了xmlファイル –

+0

他のコメントを参照してください。 xmlは問題ではありません。 GridViewの重量が働いています。グリッド内のアイテムが全体のスペースを満たしていません。そして、XMLは、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

関連する問題