使用this library
来实施Ripple Effect
,它可以在Android M
设备上正常 。
在Android上 M 设备获取IllegalStateException
,表示恢复时出现下溢 - 恢复的次数多于保存次数
FATAL EXCEPTION: main
Process: com.example.ripplethings, PID: 20119
java.lang.IllegalStateException: Underflow in restore - more restores than saves
at android.graphics.Canvas.native_restore(Native Method)
at android.graphics.Canvas.restore(Canvas.java:540)
at com.andexert.library.RippleView.draw(RippleView.java:166)
答案 0 :(得分:5)
这似乎是Android 6.0中库本身的一个错误,避免错误的可能方法是
1)使用com.balysv:material-ripple:1.0.2库看起来更稳定
2)或者你可以使用21+的单独布局让Android M处理涟漪本身。只需使用适当的纹波支架进行布局和视图
3)或者您可以根据this建议
修改库源代码4)@ git提供了这个库的固定版本,你可以在你的gradle中使用它
List<MyType> a;
List<MySubType> b = new ArrayList<>();
a = b; // compile-time-error, but assume OK for now
a.add(new MyType()); // Based on the type of a, this should be OK, but it's not because a is actually a reference to List<MySubType>.