【发布时间】:2011-10-16 03:39:59
【问题描述】:
我想删除出现在网格视图中的额外填充。我有大小为 128*128 的图像,它们将占据网格中的单元格。但不知何故,有一个额外的空间被添加到网格的内容中。
经过一番研究,我能够确定我必须覆盖网格视图的 listSelector 属性。现在这是我的问题 - 我知道我必须在这里指定类似 xml drawable 的东西,但是在其中指定什么?我尝试使用可绘制的形状,并将填充和笔画设置为 0dp,但无济于事。
here 提出并回答了这个问题,但他们没有给出可绘制对象必须包含的内容。
有人可以帮我解决这个问题吗?谢谢!
编辑:好的 - here 是我拥有的 UI 的副本。同样的XML布局如下:
<GridView android:id="@+id/GV_A2ZMenu" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:numColumns="4"
android:layout_gravity="top" android:stretchMode="columnWidth"
android:gravity="center" android:listSelector="@null" />
我正在使用 BaseAdapter 类来填充 gridView。这是它的代码:
public class AtoZMenu extends BaseAdapter {
private static Context AppC;
private Integer[] MenuImg = { R.drawable.alphabet_a, R.drawable.alphabet_b,
R.drawable.alphabet_c, R.drawable.alphabet_d,
R.drawable.alphabet_e, R.drawable.alphabet_f,
R.drawable.alphabet_g, R.drawable.alphabet_h,
R.drawable.alphabet_i, R.drawable.alphabet_j,
R.drawable.alphabet_k, R.drawable.alphabet_l,
R.drawable.alphabet_m, R.drawable.alphabet_n,
R.drawable.alphabet_o, R.drawable.alphabet_p,
R.drawable.alphabet_q, R.drawable.alphabet_r,
R.drawable.alphabet_s, R.drawable.alphabet_t,
R.drawable.alphabet_u, R.drawable.alphabet_v,
R.drawable.alphabet_w, R.drawable.alphabet_x,
R.drawable.alphabet_y, R.drawable.alphabet_z };
public AtoZMenu(Context C) {
AppC = C;
}
public int getCount() {
return MenuImg.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView IV;
float density = AppC.getResources().getDisplayMetrics().density;
if (convertView == null) {
IV = new ImageView(AppC);
IV.setMaxHeight((int) (1));
} else {
IV = (ImageView) convertView;
}
IV.setImageResource(MenuImg[position]);
return IV;
}
}
你能找出错误吗?
注意:最后我在表格布局中实现了一个类似的屏幕,它呈现了更好的网格。
【问题讨论】:
-
截图将有助于理解问题以及您的布局 XML 文件
-
已编辑问题,其中包含指向已回答的类似问题的链接,但缺少实现!
-
@MarvinLabs:我已经发布了 UI 和我为此使用的 xml 布局代码。你能找出问题所在吗??
标签: android gridview cellpadding