android疑难杂症-自定义viewgroup的一些问题

问题1

自定义ViewGroup添加TextView的Gravity失效

解决方法:

在addView()之前

添加如下代码

1
2
mTextView.measure(View.MeasureSpec.makeMeasureSpec(mWidth, View.MeasureSpec.EXACTLY),
View.MeasureSpec.makeMeasureSpec(mHeight, View.MeasureSpec.EXACTLY));

问题2

自定义ViewGroup调用setMeasuredDimension(mWidth, mHeight);后,TextView不更新边框

解决方法:

  • ViewGroup中
1
2
3
4
5
6
7
protected void (int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(mWidth, mHeight);
itemView.measure(MeasureSpec.makeMeasureSpec(mWidth, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(mHeight, MeasureSpec.EXACTLY));
}
  • 修改TextView的地方
1
2
3
tv.setText("xxx");
tv.requestLayout();