У меня есть некоторый код Android для пользовательского FrameLayout.Код изменяет некоторый текст 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()
?