首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwipeRefreshLayout应用主题

SwipeRefreshLayout应用主题
EN

Stack Overflow用户
提问于 2015-11-18 14:19:29
回答 2查看 3K关注 0票数 7

是否有方法使用主题修改SwipeRefreshLayout中箭头的颜色?

我知道你可以使用这段代码

代码语言:javascript
复制
public void setColorSchemeResources (int... colorResIds)

但我希望在默认情况下将箭头设置为我的应用程序的主题,而不必在每次使用SwipeRefrestLayout时在代码中更改它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-18 15:21:26

在支持v4 23.0.1时,从SwipeRefreshLayout构造函数中提取的惟一属性是android.R.attr.enabled

意思是没有,唯一的方式来设置颜色,是在代码中。

但是,您可以创建颜色id的数组资源来保存颜色组合和引用,而不是在整个代码库中使用重复列表。没有更好的,但至少一个改变,然后只需要触摸一个文件。

编辑1:截至24.2.1,上述情况仍然属实

票数 9
EN

Stack Overflow用户

发布于 2018-08-30 10:47:12

在本例中,对我来说最好的解决方案是扩展SwipeRefreshLayout并在那里设置颜色,然后在需要时在xml或代码中使用这个类。

代码语言:javascript
复制
public class ColoredSwipeRefreshLayout extends SwipeRefreshLayout {

public ColoredSwipeRefreshLayout(@NonNull Context context) {
    super(context);
    setColors();
}

public ColoredSwipeRefreshLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
    setColors();
}

private void setColors() {
    setColorSchemeColors(
            ContextCompat.getColor(getContext(), R.color.blue_main),
            ContextCompat.getColor(getContext(), R.color.blue_accent),
            ContextCompat.getColor(getContext(), R.color.blue_dark));
}

}

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33782454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档