我正在为我的网格视图使用自定义适配器,它只返回宽度为其父级大小的1/3的图像视图,应用程序正在渲染除位置0之外的所有视图我认为它因为父级宽度和高度为0在渲染第一个视图时,如何获得第一个视图的父宽度,即位置0的视图
这是我的getView()方法:
public View getView(int position, View convertView, ViewGroup parent) {
super.getView(position, convertView, parent);
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(getContext());
imageView.setLayoutParams(new GridView.LayoutParams((int) (parent
.getMeasuredWidth() / 3f),
(int) (parent.getMeasuredWidth() / 3f)));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
System.out.println(ids[position].intValue());
int sdk = android.os.Build.VERSION.SDK_INT;
if (sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
imageView.setBackgroundDrawable(getContext().getResources()
.getDrawable(R.drawable.shadow_white));
} else {
imageView.setBackground(getContext().getResources().getDrawable(
R.drawable.shadow_white));
}
imageView.setImageResource(ids[position].intValue());
System.out.println("getView" + imageView);
return imageView;
}
这是我在xml中的网格视图声明
<GridView
android:id="@+id/category_grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="5dp"
android:background="@color/white"
android:numColumns="3"
android:stretchMode="columnWidth" >
</GridView>