如何使用自定义BasicScrollBarUI重新设置ScrollBar的颜色?
我知道我可以在第一次使用它来设置颜色:
protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds)
但是,这是由构造函数调用的,我无法手动再次调用它。
我需要滚动条的颜色来更改何时和操作触发。
我该怎么办?
最佳答案
我不确定您需要什么,但是如果有帮助请告诉我
ScrollView scr = (ScrollView)findViewById(R.id.scrollView1);
try
{
Field mScrollCacheField = View.class.getDeclaredField("mScrollCache");
mScrollCacheField.setAccessible(true);
Object mScrollCache = mScrollCacheField.get(scr); // scr is your Scroll View
Field scrollBarField = mScrollCache.getClass().getDeclaredField("scrollBar");
scrollBarField.setAccessible(true);
Object scrollBar = scrollBarField.get(mScrollCache);
Method method = scrollBar.getClass().getDeclaredMethod("setVerticalThumbDrawable", Drawable.class);
method.setAccessible(true);
// Set your drawable here.
method.invoke(scrollBar, getResources().getDrawable(R.drawable.scrollbar_blue));
} catch(Exception e) {
e.printStackTrace();
}
listview.mScrollCache.scrollBar.setVerticalThumbDrawable(getResources().getDrawable(R.drawable.scrollbar_style));