【发布时间】:2023-03-26 15:11:01
【问题描述】:
我有一个芯片视图。
我想检查文本是否为椭圆,如果是,则将文本替换为较短的文本(在运行时)。
我已经看到这个code 来检查芯片中的文本是否是椭圆形的。
Layout l = textview.getLayout();
if (l != null) {
int lines = l.getLineCount();
if (lines > 0)
if (l.getEllipsisCount(lines-1) > 0)
Log.d(TAG, "Text is ellipsized");
}
但是我不知道我应该在什么生命周期事件中调用这个方法,至于这一行
Layout l = myAccountView.getLayout();
我收到l = null
我有视图生命周期(包含我的芯片的框架布局)
我已尝试检查 onDraw() 和 onLayout()
我也尝试从保存框架的对话框中调用
但我知道通货膨胀是自上而下的,所以它也会在 setContentView() 上返回 l= null。
【问题讨论】:
-
试试
onResume() -
但通货膨胀不是自上而下吗?意思是孩子没有在父母之前准备好?
-
onResume()onResume()肯定会为您准备好所有视图 -
对话没有 onResume
-
也许是 ViewTreeObserver 之一...侦听器将完成这项工作,例如参见 this post
标签: android text android-lifecycle android-chips ellipsize