Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/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出现在屏幕上时调用的TextView方法?_Android_Textview - Fatal编程技术网

Android 当TextView出现在屏幕上时调用的TextView方法?

Android 当TextView出现在屏幕上时调用的TextView方法?,android,textview,Android,Textview,所以基本上我需要的是更新整个应用程序TextView的字体大小,我不想为所有TextView逐个创建变量 我试图扩展TextView,但似乎找不到任何在每次TextView出现在屏幕上时调用的方法 我试过这个: protected void onDraw(Canvas canvas) { super.onDraw(canvas); } 只有当TextView首次出现在屏幕上或我调用setTextSize时,才调用该方法 有什么想法吗?如果文本视图在滚动视图中,您可以使用下面的代码来确定

所以基本上我需要的是更新整个应用程序
TextView
的字体大小,我不想为所有
TextView
逐个创建变量

我试图扩展
TextView
,但似乎找不到任何在每次TextView出现在屏幕上时调用的方法

我试过这个:

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
}
只有当
TextView
首次出现在屏幕上或我调用
setTextSize
时,才调用该方法


有什么想法吗?

如果文本视图在滚动视图中,您可以使用下面的代码来确定您的文本视图当前是否在屏幕的可见区域

Rect scrollBounds = new Rect();
scrollView.getHitRect(scrollBounds);
if (textView.getLocalVisibleRect(scrollBounds)) {
    // textView is within the visible window
} else {
    // textView is not within the visible window
}

Transversals生命周期事件:
animate->measure->layout->draws

视图或活动可以通过调用
requestLayout()
方法重新触发度量和布局过程

在测量和布局计算之后,视图会自动绘制。此操作可以通过视图类中的
invalidate()
方法触发


您需要调用invalidate()来更新屏幕上的文本视图

此文本视图是否在某个滚动视图中?此文本视图如何在屏幕上消失或重新出现?它是在滚动视图中还是整个活动/片段出现/消失?活动/片段出现和消失,所以我仍然需要为每个我的TextView创建所有变量或findViewById,我假设?如果您只将某些属性作为字体大小应用于所有TextView,我认为您不需要自定义TextView,只将它们放在一个样式中,并将此样式放在xml中。你不需要创建变量。如果你有一些TextView没有的属性,你可以将它们添加到属性(xml文件)中,并在自定义TextView中获取它们,你可以将这些属性添加到样式中,所有内容都与我说的一样。我已经尝试了Janathanan的答案,但是字体大小没有改变。按照答案中的确切方式,但似乎没有应用样式