在我的活动中,我在 onCreate() 中有一个 GridView 和自定义适配器:
GridView vg = (GridView) findViewById(R.id.gridview);
ArrayList<CustomPart> items = ...;
vg.setAdapter(new TaskVariantsAdapter(this, items));
我需要知道 GridView 中列的实际宽度才能对某些图像进行特殊缩放。我注意到 getView() 中的“父级”已经具有非零列宽 - 至少我能够从 parent.getColumnWidth() 获取整数。
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
....
int width = ((GridView) parent).getColumnWidth();
....
}
我可以确定父母已经被测量并且 columnWidth 是正确的吗?我问是因为(当然)活动在 onCreate() 中没有宽度和高度。我需要知道在所有布局测量之后第一个adapter.getView() 将是什么,即使我将adapter 附加到activity.onCreate() 内的GridView。你能确认一下吗?