我的Activity由GridView组成,包含40个元素.开始活动后,用户可以看到最多15个项目(每行3行,5个项目).我在getView()body中写到传递给获取View的LogCat数:
Log.i("getView()","GETTING VIEW_POSITION[" + String.valueOf(position) + "]" + (convertView != null?convertView.toString():"null"));
启动我的应用程序后,我得到这样的日志:
02-09 14:34:56.900: INFO/getView()(388): GETTING VIEW_POSITION[0]null 02-09 14:34:57.300: INFO/getView()(388): GETTING VIEW_POSITION[0]android.widget.FrameLayout@44c7a9c0 02-09 14:34:57.300: INFO/getView()(388): GETTING VIEW_POSITION[1]null 02-09 14:34:57.400: INFO/getView()(388): GETTING VIEW_POSITION[2]null 02-09 14:34:57.510: INFO/getView()(388): GETTING VIEW_POSITION[3]null 02-09 14:34:57.620: INFO/getView()(388): GETTING VIEW_POSITION[4]null 02-09 14:34:57.720: INFO/getView()(388): GETTING VIEW_POSITION[5]null 02-09 14:34:57.840: INFO/getView()(388): GETTING VIEW_POSITION[6]null 02-09 14:34:57.930: INFO/getView()(388): GETTING VIEW_POSITION[7]null 02-09 14:34:58.273: DEBUG/dalvikvm(388): GC freed 3530 objects / 322744 bytes in 270ms 02-09 14:34:58.280: INFO/getView()(388): GETTING VIEW_POSITION[8]null 02-09 14:34:58.300: INFO/getView()(388): GETTING VIEW_POSITION[9]null 02-09 14:34:58.320: INFO/getView()(388): GETTING VIEW_POSITION[10]null 02-09 14:34:58.340: INFO/getView()(388): GETTING VIEW_POSITION[11]null 02-09 14:34:58.360: INFO/getView()(388): GETTING VIEW_POSITION[12]null 02-09 14:34:58.380: INFO/getView()(388): GETTING VIEW_POSITION[13]null 02-09 14:34:58.400: INFO/getView()(388): GETTING VIEW_POSITION[14]null 02-09 14:34:59.220: INFO/getView()(388): GETTING VIEW_POSITION[0]null 02-09 14:34:59.490: INFO/getView()(388): GETTING VIEW_POSITION[0]android.widget.FrameLayout@44c69ef0
我也是红色this的帖子关于这样一个问题.但是我的GridView的XML描述中的高度设置为填充父项:
<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/grid" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="auto_fit" android:horizontalSpacing="10dp" android:verticalSpacing="10dp" android:columnWidth="140dp" android:gravity="center" android:scrollbars="none" />
public class ImageAdapter extends BaseAdapter { private Activity activity; private LayoutInflater inflater = null; private ArrayList<Photo> photoes; public ImageAdapter(Activity a,ArrayList<Photo> pictures) { photoes = pictures; activity = a; inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position,View convertView,ViewGroup parent) { Log.i("getView()","GETTING VIEW_POSITION[" + String.valueOf(position) + "]" + (convertView != null?convertView.toString():"null")); View mViewSlice = convertView; if(convertView == null) { mViewSlice = inflater.inflate(R.layout.photo_preview,null); ((TextView) mViewSlice.findViewById(R.id.name_of_photo)).setText(photoes.get(position).getName()); mViewSlice.setPadding(5,5,5); mViewSlice.setLayoutParams(new GridView.LayoutParams(-2,-2)); } return mViewSlice; } @Override public int getCount() { return photoes.size(); } @Override public Object getItem(int position) { return photoes.get(position); } @Override public long getItemId(int position) { return position; } }
我希望有人会回答我的问题,并帮助我解决这个问题.
等待你的建议亚历克斯.