Android中的GridView无法正确显示其所有项目
我正在尝试实现一个包含57项的自定义GridView。但只有前五幅图像显示正确,其余图像重复向下滚动。而向上滚动图像则会迷失方向 我要做什么才能正确显示57幅图像?多谢各位 Main.java Adapter.java main.xml row.xmlAndroid中的GridView无法正确显示其所有项目,android,image,gridview,Android,Image,Gridview,我正在尝试实现一个包含57项的自定义GridView。但只有前五幅图像显示正确,其余图像重复向下滚动。而向上滚动图像则会迷失方向 我要做什么才能正确显示57幅图像?多谢各位 Main.java Adapter.java main.xml row.xml 将图像绑定代码移出if-else条件,如下所示 @Override public View getView(int position, View convertView, ViewGroup parent) { Vie
将图像绑定代码移出if-else条件,如下所示
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
final RecordHolder holder;
if (convertView == null) {
view = context.getLayoutInflater().inflate(R.layout.gridview_row, null);
holder = new RecordHolder();
holder.imageItem = (ImageView) view.findViewById(R.id.participar_gridview_imagen);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(Utils.anchoPantalla(context) / 2, Utils.anchoPantalla(context) / 2);
holder.imageItem.setLayoutParams(params);
view.setTag(holder);
} else {
holder = (RecordHolder) view.getTag();
}
holder.imageItem.setImageResource(imagenes[position]);
return view;
}
@很好。。别忘了接受答案,以备将来参考
private Activity context;
private int[] imagenes;
public GridViewImageAdapter(Activity context, int[] imagenes) {
super();
this.context = context;
this.imagenes = imagenes;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
final RecordHolder holder;
if (convertView == null) {
view = context.getLayoutInflater().inflate(R.layout.gridview_row, null);
holder = new RecordHolder();
holder.imageItem = (ImageView) view.findViewById(R.id.participar_gridview_imagen);
holder.imageItem.setImageResource(imagenes[position]);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(Utils.anchoPantalla(context) / 2, Utils.anchoPantalla(context) / 2);
holder.imageItem.setLayoutParams(params);
view.setTag(holder);
} else {
holder = (RecordHolder) view.getTag();
}
return view;
}
private class RecordHolder {
ImageView imageItem;
}
public int getCount() {
return imagenes.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<GridView
android:id="@+id/participar_gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:listSelector="#FFFFFFFF" >
</GridView>
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/participar_gridview_imagen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"/>
</RelativeLayout>
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
final RecordHolder holder;
if (convertView == null) {
view = context.getLayoutInflater().inflate(R.layout.gridview_row, null);
holder = new RecordHolder();
holder.imageItem = (ImageView) view.findViewById(R.id.participar_gridview_imagen);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(Utils.anchoPantalla(context) / 2, Utils.anchoPantalla(context) / 2);
holder.imageItem.setLayoutParams(params);
view.setTag(holder);
} else {
holder = (RecordHolder) view.getTag();
}
holder.imageItem.setImageResource(imagenes[position]);
return view;
}