安卓 L - SwipeRefreshLayout 上的 Material Design 颜色方案

47
我开始在我的最新项目上实现 Material Theme,为新版本的 L 版本的发布做准备。
我一直在阅读 Material 设计指南,并发现了这个:
UI Color Application
选择你的调色板
通过选择三种主要颜色和一个次要调色板中的一个强调颜色来限制颜色选择。强调颜色可能需要备选项。
它更多地解释了如何在应用程序上实现这些颜色色调,包括强调颜色,但在使用 SwipeRefreshLayout 进度条时,当将主要颜色用于我的应用程序时,感觉不对劲。
应该是强调颜色和 android:colorPrimary 的混合吗?
你对此有什么想法?我错过了关于实现材料设计指南上进度条的解释吗?
提前致谢。

这个回答可能对你有帮助:https://dev59.com/DlwY5IYBdhLWcg3wlolg#32460907。 - Muahmmad Tayyib
2个回答

156
材料设计规范已更新,包括下拉刷新的新指南。
自支持库修订版21以来,SwipeRefreshLayout现在显示一个圆形指示器。
当你开始向下滑动时,指示器有一个箭头(表示正在刷新)。当你释放它时,它失去箭头并开始旋转。

SwipeRefreshLayout

现在我们仍然可以设置一个颜色方案,进度条将在颜色之间循环。
那么我们应该使用哪些颜色呢?
让我们看一下 Google I/O 源代码
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>

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

嗯,看起来它现在还处于早期阶段。顺便说一句,回答得很好。我会再保持一段时间的开放状态,如果到本周末还没有更好的答案,我就会接受它。 - reixa
22
太糟糕了。他们至少应该让我们选择更喜欢哪种设计。他们自己的材料设计风格的应用使用条形作为下拉刷新指示器。 - Kuno
1
@Kuno 你可以从这里获取线性进度代码 http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.L_preview/android/support/v4/widget/SwipeRefreshLayout.java - Roger Alien
是的,这就是我最终得到的。你必须复制BakedBezierInterpolator、SwipeProgressBar和SwipeRefreshLayout。 - Kuno
1
对于一些人来说,在colors.xml中创建颜色数组并将其用于某些操作更加方便。https://dev59.com/dF4c5IYBdhLWcg3wQoc5 - Micro
阴影在三星Note 5中没有出现。 - Neon Warge

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

我希望有人会发现这个有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接