私のアクティビティでは、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()の幅と高さがないため、私は尋ねています。activity.onCreate()内のGridViewにadapterをアタッチしたとしても、すべてのレイアウト測定後に最初のadapter.getView()がどうなるかを知る必要があります。それを確認していただけますか?