制作自定义SwipeRefreshLayout指标?

时间:2015-10-16 00:17:13

标签: android swiperefreshlayout

我如何制作一个自定义指标,使用带有SwipeRefreshLayout自定义动画的可绘制对象?

我查看了SwipeRefreshLayout的源代码,发现CircleImageView对象是私有的。

无论如何都要修改ImageView

3 个答案:

答案 0 :(得分:26)

您可以通过反射更改drawable,不确定这个想法有多好。类似的东西:

mSwipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.your_swiperefresh_id);
try {
    Field f = mSwipeRefreshLayout.getClass().getDeclaredField("mCircleView");
    f.setAccessible(true);
    ImageView img = (ImageView)f.get(mSwipeRefreshLayout);
    img.setImageResource(R.drawable.your_drawable_file);
} catch (NoSuchFieldException e) {
    e.printStackTrace();
} catch (IllegalAccessException e) {
    e.printStackTrace();
}

答案 1 :(得分:3)

试试https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh。 修改系统小部件很麻烦。

答案 2 :(得分:0)

如果您不想像上面的示例那样使用反射,则可以从SwipeRefreshLayout的0索引中获取子对象。它将使用CircleImageView,因此您可以为其设置任何Drawable。