gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:45:04 24 4
gpt4 key购买 nike

我有一个 Activity ,其中有几个线性布局的 View ,一个是 TextView ,一个是我的游戏的主视图,这是我在代码中使用的自定义 View 。

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

mTextView.setText("random text");

onMeasure() 在自定义 View 中被调用,即 TextView 上的 setText 似乎导致不同的 View 重新测量。因为我的 onmeasure() 代码以不受欢迎的方式重置了 View ,所以我想避免这种情况发生。

在这种情况下,是什么导致了对 onMeasure() 的调用,我该如何停止它?

最佳答案

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

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

问题的答案:明智的做法是假设可以随时调用 onMeasure()。一个好的解决方案是更改 onMeasure() 以使其没有副作用。而是在“重置 View ”之前等待 onSizeChanged()

关于android - onmeasure 被调用,我不知道为什么 - android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9650741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com