カスタムアダプタのgetViewメソッドでLinearLayout要素の幅を取得したいと思います。私のgetViewメソッドは次のようになります。
@Override
public View getView(int position, View v, ViewGroup parent) {
View mView = v;
if (mView == null) {
LayoutInflater vi = (LayoutInflater) getContext().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
mView = vi.inflate(R.layout.levelselector_item, null);
}
if (mView != null) {
...
LinearLayout ln = (LinearLayout) mView.findViewById(R.id.lineScore);
LinearLayout lnTotal = (LinearLayout) mView.findViewById(R.id.lineScoreTotal);
int widthTotal = lnTotal.getWidth()/2;
ln.getLayoutParams().height = 3;
ln.getLayoutParams().width = widthTotal;
ln.requestLayout();
ln.setBackgroundColor(Color.parseColor("#eef05e"));
}
return mView;
}
私のwidthTotalに値がないようです。グリッドビューの項目をクリックして戻るボタンを押すと、突然黄色のバーが表示されます。ln.getLayoutParams()。width=20と入力すると; 彼はまた、黄色の短いバーを示しています。いつどこでLinearLayoutの幅を取得できるかわかりません...