Android L - SwipeRefreshLayout颜色方案的材质设计

时间:2014-07-28 12:41:21

标签: colors android-5.0-lollipop material-design

我开始在我最新的项目中实现Material Theme,为新L版本的推出做好准备。

我一直在阅读材料设计指南,并发现了这一点。

  

UI颜色应用

     

选择调色板

     

通过选择三种色调来限制您选择的颜色   辅助调色板中的主色和一个强调色。口音   颜色可能需要也可能不需要后退选项

它或多或少解释了如何在应用程序上实现这些色调,包括强调色,但在使用SwipeRefreshLayout进度条在我的应用程序上使用主色时,感觉不对。

App example SwipeRefreshLayout Material design

它应该是强调色和android:colorPrimary之间的混合吗?

对此有何想法?关于在我错过的材料设计指南中实施进度条有什么解释吗?

提前致谢

2 个答案:

答案 0 :(得分:146)

材料设计规范已使用swipe to refresh pattern的新指南进行了更新。

从支持库的第21版开始,SwipeRefreshLayout现在显示一个循环指示符 当您开始向下滑动时,指示器有一个箭头(表示刷新)。当你松开它时,它会丢失箭头并开始旋转。

SwipeRefreshLayout

现在我们仍然可以设置颜色方案,进度条将在颜色之间循环。

我们应该使用哪种颜色?

让我们来看看Google I / O source code

mSwipeRefreshLayout.setColorSchemeResources(
                R.color.refresh_progress_1,
                R.color.refresh_progress_2,
                R.color.refresh_progress_3);

以下是colors

<color name="refresh_progress_1">@color/theme_accent_2</color>
<color name="refresh_progress_2">@color/theme_accent_1</color>
<color name="refresh_progress_3">@color/theme_primary</color>

所以是的,它是主色和强调色之间的混合。

答案 1 :(得分:0)

给出的解决方案对我不起作用。

我简单地扩展并使用了它。

class SwipeToRefreshLayout(context: Context, attrs: AttributeSet): SwipeRefreshLayout(context, attrs)  {

var listener: OnRefreshListener? = null

fun setRefreshing(refreshing: Boolean, fireCallback: Boolean) {
    super.setRefreshing(refreshing)
    listener?.onRefresh()
}

override fun setOnRefreshListener(listener: OnRefreshListener?) {
    super.setOnRefreshListener(listener)
    this.listener = listener
}
}

我希望有人会觉得有用。