android– 以编程方式更改ScrollView的颜色

android– 以编程方式更改ScrollView的颜色,第1张

概述我目前在做什么目前,我已使用android:scrollbarThumbVertical属性更改了我的XML文件中的滚动条,如下所示:<ScrollViewandroid:id="@+id/scrollView1"android:scrollbarThumbVertical="@drawable/scrollbar_blue"...>而scrollbar_blue是指我的scrollbar_blue.xm

我目前在做什么

目前,我已使用android:scrollbarThumbVertical属性更改了我的XML文件中的滚动条,如下所示:

<ScrollVIEw    androID:ID="@+ID/scrollVIEw1"    androID:scrollbarThumbVertical="@drawable/scrollbar_blue"    ... >

而scrollbar_blue是指我的scrollbar_blue.xml文件,它是这样的:

<?xml version="1.0" enCoding="utf-8"?><shape xmlns:androID="http://schemas.androID.com/apk/res/androID" >    <gradIEnt        androID:angle="45"        androID:centercolor="@color/blue"        androID:endcolor="@color/blue"        androID:startcolor="@color/blue" />    <corners androID:radius="8dp" /></shape>

我想做的事

我的应用程序有一个颜色选项 – 所以当颜色打开时,它应该保持蓝色;否则,它应该是灰色的.

我如何以编程方式(在我的活动类中)更改我的ScrollVIEw以使用我的scrollbar_grey.xml?

如果你看一下ScrollView的AndroID文档,androID没有相应的方法:scrollbarThumbVertical

我很好用另一种改变颜色的方式.

以下是我创建ScrollVIEw引用的方法:

ScrollVIEw scr = (ScrollVIEw)findVIEwByID(R.ID.scrollVIEw1);

解决方法:

有一种方法可以通过编程方式进行更改,但该方法不会公开.似乎没有任何其他东西可以从我读过的内容中以编程方式进行更改.

但是,我确实遇到过一个使用反射来执行此 *** 作的stackoverflow应答.
如果适用于你,请在那里提出答案:https://stackoverflow.com/a/19819843/3286163

答案是列表视图,但滚动视图是相同的:

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();}

只有我能找到的东西.我自己尝试了一下,它有效.

总结

以上是内存溢出为你收集整理的android – 以编程方式更改ScrollView的颜色全部内容,希望文章能够帮你解决android – 以编程方式更改ScrollView的颜色所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1098232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存