我有一个活动,在线性布局中有几个视图,一个是textvIEw,一个是我的游戏的主视图,这是我在代码中做的事情的自定义视图.
当我将以下代码添加到我的活动中时:
mTextVIEw.setText("random text");
onMeasure()在自定义视图中被调用,即textvIEw上的setText似乎导致不同的视图重新测量.
因为我的onmeasure()代码以不合需要的方式重置视图,所以我想避免这种情况发生.
在这种情况下导致调用onMeasure()的原因是什么?如何阻止它?
解决方法:
回答你的问题:
在线性布局中,每个元素的大小和位置取决于前面元素的大小和位置.如果使用布局权重来调整元素的大小而不是使用固定大小,那么元素的大小和位置也取决于它之后的元素.
更改一个元素的内容(在您的情况下通过调用setText())可能会更改该元素的大小.因此,AndroID会重新布局以确定linearLayout子项的新大小和位置,这需要测量线性布局中的所有元素.
回答你的问题:
假设可以随时调用onMeasure()是明智的.一个好的解决方案是改变onMeasure(),使其没有副作用.而是在“重置视图”之前等待onSizeChanged().
以上是内存溢出为你收集整理的onmeasure被调用,我不知道为什么 – android全部内容,希望文章能够帮你解决onmeasure被调用,我不知道为什么 – android所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)