onmeasure被调用,我不知道为什么 –android

onmeasure被调用,我不知道为什么 –android,第1张

概述我有一个活动,在线性布局中有几个视图,一个是textview,一个是我的游戏的主视图,这是我在代码中做的事情的自定义视图.当我将以下代码添加到我的活动中时:mTextView.setText("randomtext");onMeasure()在自定义视图中被调用,即textview上的setText似乎导致不同的视图重新测量.

我有一个活动,在线性布局中有几个视图,一个是textvIEw,一个是我的游戏的主视图,这是我在代码中做的事情的自定义视图.

当我将以下代码添加到我的活动中时:

mTextVIEw.setText("random text");

onMeasure()在自定义视图中被调用,即textvIEw上的setText似乎导致不同的视图重新测量.
因为我的onmeasure()代码以不合需要的方式重置视图,所以我想避免这种情况发生.

在这种情况下导致调用onMeasure()的原因是什么?如何阻止它?

解决方法:

回答你的问题:
在线性布局中,每个元素的大小和位置取决于前面元素的大小和位置.如果使用布局权重来调整元素的大小而不是使用固定大小,那么元素的大小和位置也取决于它之后的元素.

更改一个元素的内容(在您的情况下通过调用setText())可能会更改该元素的大小.因此,AndroID会重新布局以确定linearLayout子项的新大小和位置,这需要测量线性布局中的所有元素.

回答你的问题:
假设可以随时调用onMeasure()是明智的.一个好的解决方案是改变onMeasure(),使其没有副作用.而是在“重置视图”之前等待onSizeChanged().

总结

以上是内存溢出为你收集整理的onmeasure被调用,我不知道为什么 – android全部内容,希望文章能够帮你解决onmeasure被调用,我不知道为什么 – android所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116356.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存