我在应用程序中使用GridView
,我将列数设置为2,它可以正常工作,但是如果网格中的项目数大于8,它将开始重复第一个项目。
我想达到14个项目,而无需重复任何项目。谢谢!
这是我的GridView XML
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="160dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="2"
android:paddingTop="10dp"
android:layout_below="@id/View1"
android:stretchMode="columnWidth"
android:verticalSpacing="20dp" />
![这是屏幕截图,到达(第8位)后,重复(第1位),(第2位)...等等] [1]
这是我的适配器
public View getView(int position, View convertView, ViewGroup parent)
{
View v;
if (convertView == null) { // if it's not recycled, initialize some attributes
LayoutInflater li = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
v = li.inflate(R.layout.icon_launcher, null);
TextView tv = (TextView)v.findViewById(R.id.icon_text);
ImageButton ib = (ImageButton)v.findViewById(R.id.icon_image);
LinearLayout icon = (LinearLayout)v.findViewById(R.id.icon_launcher);
//icon.setLayoutParams(new GridView.LayoutParams(203,200));
ib.setScaleType(ib.getScaleType().FIT_XY);
ib.setPadding(1,1,1,1);
ib.setFocusable(false);
ib.setClickable(false);
ib.setImageBitmap(BitmapFactory.decodeFile(mThumbIds.get(position)));
tv.setText(mTextsIds.get(position));
} else
{
v = (View) convertView;
}
return v;
}
最佳答案
尝试此修复。
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) { // if it's not recycled, initialize some
// attributes
LayoutInflater li = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = li.inflate(R.layout.icon_launcher, null);
}
TextView tv = (TextView) convertView.findViewById(R.id.icon_text);
ImageButton ib = (ImageButton) convertView.findViewById(R.id.icon_image);
LinearLayout icon = (LinearLayout) convertView
.findViewById(R.id.icon_launcher);
// icon.setLayoutParams(new GridView.LayoutParams(203,200));
ib.setScaleType(ib.getScaleType().FIT_XY);
ib.setPadding(1, 1, 1, 1);
ib.setFocusable(false);
ib.setClickable(false);
ib.setImageBitmap(BitmapFactory.decodeFile(mThumbIds.get(position)));
tv.setText(mTextsIds.get(position));
return convertView;
}