Android 如何更改SwipeRefreshLayout中的样式ProgersBar?

Android 如何更改SwipeRefreshLayout中的样式ProgersBar?,android,android-layout,Android,Android Layout,我使用SwipeRefreshLayout更新我的列表 一切正常。但是我不喜欢进度条。它是圆的。带着箭旋转。我看到过这样的例子,一条线从中心向边缘移动。如何设置进度条样式 private SwipeRefreshLayout swipeLayout; ... swipeLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_guest_list); swipeLayout.setColorSchemeColors(Color

我使用SwipeRefreshLayout更新我的列表

一切正常。但是我不喜欢进度条。它是圆的。带着箭旋转。我看到过这样的例子,一条线从中心向边缘移动。如何设置进度条样式

private SwipeRefreshLayout swipeLayout;
...
swipeLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_guest_list);
        swipeLayout.setColorSchemeColors(Color.RED, Color.GREEN, Color.BLUE, Color.CYAN);
        swipeLayout.setOnRefreshListener(this);

我需要两个视频

您不能更改动画

SwipeRefreshLayout
中,您不能定制太多;我相信这是谷歌试图让开发者坚持共同的模式。您可以设置动画的四种颜色的样式,使用
setColorScheme()
指定


SwipeRefreshLayout
会在顶部为您显示预定义的动画。这可能是当
canChildScrollUp()
返回false且用户“下拉”时,或者当您设置
setRefreshing(true)
时。使用
设置刷新(false)
关闭动画。将逻辑放在侦听器的方法
onRefreshing()
中。如果在
SwiperFreshLayout
中放置了非
ListView
的内容,请覆盖
canChildScrollUp()
。从这里开始应该很好。

您可以通过引用support-v4库的较旧的jar文件,将其更改为较旧的进度条。在更新eclipse之后,我突然遇到了同样的问题,我只是将旧的support-v4.jar复制到projects libs文件夹,然后使用项目属性引用这个support-v4.jar,然后清理并构建项目,现在它使用旧的类。 如果您不使用更新的支持库中的任何特定内容,则此解决方案是合适的。这是我的示例

webframe=WebView

swipeContainer=swipeLayout

swipeContainer.setOnRefreshListener {
        webframe.reload()
        swipeContainer.setColorSchemeColors(Color.WHITE)
        swipeContainer.setProgressBackgroundColorSchemeColor(Color.rgb(0,165,165))
    }

您可以使用不同颜色的刷卡进度变量:

swipeRefreshLayout.setColorSchemeResources(R.color.blue, R.color.green, R.color.orange);
其中蓝色、绿色和橙色在colors.xml中定义


setColorSchemeResources接收一个varargs,因此您可以在那里玩颜色数

SwipeRefreshLayout UI已在新材质设计图案()上更改,无需选择。请检查是的,我已经安装并运行了什么。如果我想要一个像旧版本那样的进度条,我该怎么办?我对circular progressbarI hope(至少现在)并不完全满意。获得旧式SwipeRefreshLayout的唯一方法是从AOSP版本控制系统中获取文件,我用这种样式测量过,但我无法在进度条上设置透明度背景!你能帮忙吗?不想开始新的话题。swipeLayout.setProgressBackgroundColor(颜色:红色);一个错误!android.content.res.Resources$NotFoundException:Resource ID#0xffff0000setProgressBackgroundColor只接受颜色的资源ID,而不接受颜色ID。将必要的颜色放在colors.xml中,并作为getResources()获取。getColor(R.color.XXX)这是从上接受的答案逐字复制的