基本上我需要的是我需要更新整个应用程序TextView
的字体大小,我不想为所有TextView
创建一个一个变量。
我尝试扩展TextView
,但似乎无法找到每次TextView出现在屏幕上时调用的任何方法。
试过这个:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}
该方法似乎仅在TextView
首次出现在屏幕上或我致电setTextSize
时才会调用。
有什么想法吗?
答案 0 :(得分:1)
Tranversals生命周期事件:animate -> measure -> layout -> draws
视图或活动可以通过调用requestLayout()
方法重新触发度量和布局传递。
在度量和布局计算之后,视图会自行绘制。可以使用View类中的invalidate()
方法触发此操作。
您需要调用invalidate()来更新屏幕上的TextView
答案 1 :(得分:0)
如果文本视图位于滚动视图中,您可以使用以下代码来识别您的文本视图当前是否位于屏幕的可见区域。
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
}