我有一些自定义 FrameLayout 的 android 代码。该代码更改了一些 textView 文本。
我看到更改仅在我调用时生效super.onMeasure(...,...)
我希望它onMeasure()
在文本通过代码更改或我调用时自动调用view.invalidate()
为什么后者不影响用户界面?
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
if (myAccountView.getVisibility() == GONE) {
return;
}
//some more code
for (int i = 0; i < chipTexts.size(); i++) {
String text = chipTexts.get(i);
myAccountView.setText(text);
if (myAccountView.getPaint().measureText(text) <= textMaxWidth) {
break;
}
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
最后打电话super.onMeasure()
比打电话更有效率view.requestLayout()
吗?