我想在自定义适配器的 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 问题似乎没有价值。如果我单击 gridview 的一个项目并单击后退按钮,那么我突然看到一个黄色条。如果我输入 ln.getLayoutParams().width = 20; 他还显示了一个黄色短条。我只是不知道何时何地可以获得LinearLayout的宽度......