Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在TextView上调用setText是否会导致它重新绘制,即使它是再次设置的同一文本?_Android_Android View - Fatal编程技术网

Android 在TextView上调用setText是否会导致它重新绘制,即使它是再次设置的同一文本?

Android 在TextView上调用setText是否会导致它重新绘制,即使它是再次设置的同一文本?,android,android-view,Android,Android View,我有一个活动,它有很多文本视图。目前,我在ViewModel上为每个文本视图的每个单独值使用单独的观察者,因此它们会随着ViewModel中数据的更改而更新 但是,如果我只是观察一个包含该活动中要显示的所有数据的对象,那就更容易了 这是否会导致所有textview重新绘制,即使我使用textview已经具有的相同值调用setText?或者,只有新文本值与旧文本值不同的textview才会重新绘制 默认行为是什么样的?对于其他类型的视图,如复选框或图像视图?Android在TextView元素中有

我有一个
活动
,它有很多
文本视图
。目前,我在
ViewModel
上为每个文本视图的每个单独值使用单独的观察者,因此它们会随着
ViewModel
中数据的更改而更新

但是,如果我只是观察一个包含该活动中要显示的所有数据的对象,那就更容易了

这是否会导致所有
textview
重新绘制,即使我使用
textview
已经具有的相同值调用
setText
?或者,只有新文本值与旧文本值不同的
textview
才会重新绘制


默认行为是什么样的?对于其他类型的视图,如
复选框
图像视图

Android在
TextView
元素中有一个名为
checkForRelayout
的方法调用
setText
。 只要看一眼,我们就会发现这个观点将是无效的

对于
复选框
查看元素,它将当前值保存在
mprivatelags
中,并在
setSelected
方法的第一行中,将其与当前值进行比较,如果当前值未更改,则不调用
invalidate


对于
ImageView
它使用旧值进行检查,如果可绘制的值相同,它不会调用
invalidate
方法

是,如果这样做,每个textview都会重新写入值……这种情况适用于所有ImageView和复选框