您的位置:首页 > 移动开发 > Android开发

android--SwipeRefreshLayout 设置下拉刷新进度条颜色变化没效果

2017-01-23 11:28 846 查看

前言

在学习使用SwipeRefreshLayout 时,想设置一下下拉刷新中进度条颜色,结果发现一直没有效果。

What

首先看一下我的写法:

mSwipeRefreshLayout.setColorSchemeColors(R.color.colorAccent,R.color.colorPrimaryDark);


按理说,运行起来进度条颜色应该是我设置的红色-蓝色的,然而发现是那种灰灰的颜色。

最后在stackoverflow上找到了答案:点击跳转

How –原因分析

SwipeRefreshLayout 中设置进度条颜色有三种方法:

setColorScheme - 已经被废弃了

setColorSchemeColors - 当设置特定颜色值时使用

setColorSchemeResources - 当引用颜色资源时使用

再来看一下,api中对setColorSchemeColors 和setColorSchemeResources的解释:



所以可以看到,如果用setColorSchemeColors方法,参数传的是颜色值,用setColorSchemeResources 参数传资源id。而setColorSchemeResources其实也是先通过资源id得到颜色值,最后调用setColorSchemeColors方法。

而我之前的写法:

mSwipeRefreshLayout.setColorSchemeColors(R.color.colorAccent,R.color.colorPrimaryDark);


传的直接是颜色资源id,所以是错的。

所以,最后正确的写法:

mSwipeRefreshLayout.setColorSchemeResources(R.color.colorAccent,R.color.colorPrimaryDark);


或者是:

mSwipeRefreshLayout.setColorSchemeColors(Color.parseColor("#FF4081"),Color.parseColor("#303F9F"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: