0

次のように設定した基本的なGridViewがあります。

<?xml version="1.0" encoding="utf-8"?>
    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/MainMenuGridview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:numColumns="auto_fit"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:columnWidth="90dp"
        android:stretchMode="columnWidth"
        android:gravity="center"
    />

ninepatchの背景を追加するまで、すべて正常に機能します。次のように背景画像を追加すると、次のようになります。

 <?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/MainMenuGridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
    android:background="@drawable/mainbackground"
/>

それは私のグリッドビューを壊します。(画面の解像度と向きに応じて)3〜4列を表示する代わりに、グリッドビューのすべてのアイコンが左上隅の1列に表示されます。さらに、一度に2つしか表示されないので、残りを表示するには下にスクロールする必要があります。グリッドビューがニンパッチの中央のロゴの寸法に拘束されているのではないかと思いますが、よくわかりません。

私のninepatchの中央には小さな領域があり、ロゴを歪ませずに表示したいと思っています。背景の残りの部分は、画面の残りの部分を占める小さなグラデーションです。これを引き起こしているものについてのアイデアはありますか?

4

2 に答える 2

1

パディングが定義されているように聞こえますか(ninepatchの下部と右側の線)?それらを取り除いてみてください。そうすれば、コンテンツ領域のみが定義されます(上部と左側の線)

于 2011-01-06T04:26:56.773 に答える
0

私も同様の問題を抱えていました。残念ながら、私の場合はパディングを使用したいと思います。私が見つけたのは、gridLayoutでのメソッド呼び出しの順序が違いを生むように見えるということです。setBackgroundResource()の後にsetPadding()を呼び出した限り、すべて問題ありません。

于 2014-04-15T07:09:46.860 に答える