【发布时间】:2014-03-30 20:32:41
【问题描述】:
我是 android 开发的新手,我在GridView 方面遇到了一点困难。我在第一堂课中有一个Gridview,名为Game,我添加了一个名为GameAdapter 的BaseAdapter。代码运行良好,但在将视图添加到 GridView 时,它不显示第一个元素(位置 0)。
public View getView(int position, View convertView, ViewGroup parent) {
Button b;
if (convertView == null) {
b = new Button(mContext);
b.setLayoutParams(new GridView.LayoutParams(parent.getWidth() / (Game.cols), parent.getHeight() / (Game.rows + 1)));
//b.setHeight(Game.gv.getMeasuredHeight() / Game.rows);
} else {
b = (Button) convertView;
}
Drawable d = new BitmapDrawable(Game.splittedBitmaps[position]);
b.setBackground(d);
b.setId(position);
b.setTag("Image_" + position);
b.setOnClickListener(Game.s);
Game.buttons[position] = b;
return b;
}
假设:mContext是Game类的Context,cols和raw是Game类中的静态整数,分别代表行数,gv是Game中实际的GridView,Game.splittedBitmaps[]是包含要设置为背景的位图的数组。
这是我的getView() 代码。请注意,当我有行代码时:
b.setLayoutParams(new GridView.LayoutParams(parent.getWidth() / (Game.cols), parent.getHeight() / (Game.rows + 1)));
结果如下:
http://postimg.org/image/794mrqpnn/
注意位置 0 处缺少的视图。
在我的另一次运行中,删除行代码后:
b.setLayoutParams(new GridView.LayoutParams(parent.getWidth() / (Game.cols), parent.getHeight() / (Game.rows + 1)));
图片显示了,但高度缩小了。
http://postimg.org/image/nmomaw5sz/
当我添加行代码时:
b.setHeight(Game.gv.getMeasuredHeight() / Game.rows);
结果变为结果 1 和结果 2 的一半:
postimg.org/image/ubv5qwr4z/
我只想在位置 0 获取与其他尺寸相同的图片。
编辑:
我正在使用的网格视图的 XML:
<GridView
android:id="@+id/gvGame"
android:layout_width="fill_parent"
android:layout_height="375dp"
android:gravity="center"
android:horizontalSpacing="3dp"
android:padding="3dp"
android:stretchMode="columnWidth"
android:verticalSpacing="1dp" />
这是关于 Game 类中网格视图的代码:
gv = (GridView) findViewById(R.id.gvGame);
gv.setNumColumns(cols);
gv.setAdapter(new GameAdapter(getApplicationContext()));
【问题讨论】:
-
您是否在代码中添加了日志记录(打印)语句,以确保在所有情况下都处理 0 案例?另外,您的 GridView 设置代码是什么样的?您也可以尝试使用更简单的
LayoutParams.FILL_PARENT,这样您就不必自己定义大小,您应该在创建 GridView 时定义行和列的宽度和高度,因此填充父参数 @987654344 @ 在这种情况下工作。 -
trumpetlicks .. 实际上,当我根据扫描的列数和行数剪切图片时,我没有恒定的视图宽度和高度。所以每个的宽度取决于网格视图的宽度/列数,高度也取决于网格视图的高度/行数。
标签: android android-layout gridview android-gridview