Android - 在运行时更改滚动条轨道可绘制并强制滚动条更新
我使用 View 的 android:scrollbarTrackVertical 属性来更改垂直滚动条轨道的背景颜色:
android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track"
“scrollbar_vertical_track”可绘制对象定义为:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00FF00" />
</shape>
在运行时,我更改可绘制对象的颜色使用:
GradientDrawable d = (GradientDrawable)(getResources().getDrawable(R.drawable.scrollbar_vertical_track));
d.setColor(color);
如何强制视图(我使用的是 WebView)更新滚动条轨道的颜色?看来只有在我重新启动活动后才有效。我尝试了不同的方法(无效等 - 没有一个有效)。
I'm using the android:scrollbarTrackVertical attribute of a View to change the background color of the vertical scroll bar track:
android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track"
The "scrollbar_vertical_track" drawable is defined as:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00FF00" />
</shape>
At runtime, I change the color of the drawable using:
GradientDrawable d = (GradientDrawable)(getResources().getDrawable(R.drawable.scrollbar_vertical_track));
d.setColor(color);
How can I force the View (I'm using a WebView) to update the color of the scrollbar track? It seems it only works after I restart the activity. I've tried different methods (invalidate, etc. - none works).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
检查函数 protected void initializeScrollbars(视图中的 TypedArray a)。我建议您尝试扩展 WebView 并向此函数公开一个包装器。这样你就可以任意调用它。可能值得检查这种方法。
Check the function protected void initializeScrollbars(TypedArray a) in View. I'd suggest that you try to extend WebView and expose a wrapper to this function. Thus you'll be able to arbitrary call it. Might be worth to check this approach.