47

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

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

UI 颜色应用

选择你的调色板

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

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

应用示例 SwipeRefreshLayout 材质设计

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

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

提前致谢

4

2 回答 2

156

材料设计规范已更新为滑动刷新模式的新指南。

从支持库的修订版 21 开始,SwipeRefreshLayout现在显示一个圆形指示器。
当您开始向下滑动时,指示器有一个箭头(表示刷新)。当您释放它时,它会丢失箭头并开始旋转。

滑动刷新布局

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

那么我们应该使用哪些颜色呢?

让我们看一下 Google I/O源代码

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

这里是颜色

<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>

所以是的,它是原色和强调色的混合。

于 2014-07-31T12:56:55.373 回答
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
}
}

我希望有人觉得它有帮助。

于 2019-08-09T12:05:44.697 回答