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 列(取决于屏幕分辨率和方向),gridview 中的所有图标都显示在左上角的单列中。此外,一次只显示两个,我必须向下滚动才能看到其余部分。我怀疑 gridview 受 ninpatch 中心徽标的尺寸限制,但我不确定。

我的 Ninepatch 中间有一个小区域,上面有一个我想要显示的徽标,不会出现任何倾斜。背景的其余部分是一个小的渐变,占据了屏幕的其余部分。关于造成这种情况的任何想法?

4

2 回答 2

1

听起来您已经定义了填充(位于 Ninepatch 底部和右侧的行)?尝试摆脱这些,因此您只定义了内容区域(顶部和左侧的行)

于 2011-01-06T04:26:56.773 回答
0

我有一个类似的问题。不幸的是,我在我的情况下使用填充。我发现 gridLayout 上的方法调用顺序似乎有所不同。只要我在 setBackgroundResource() 之后调用 setPadding(),一切都很好。

于 2014-04-15T07:09:46.860 回答