我正在使用自定义涟漪reading = function() {
start++;
return upload();
};
var start = 0;
var end = 5;
var myArray = [3,5,7];
myArray.reduce(function(promise, item) {
return upload()
.then(function(){
console.log('hola');
})
})
function upload() {
if (start < end) {
console.log('doing')
return reading();
} else {
console.log('finished')
return Promise.resolve();
}
}
drawable
但它崩溃了API 19上的应用
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_shortAnimTime"
android:color="@android:color/white">
<item android:id="@android:id/mask">
<shape android:shape="rectangle" >
<solid android:color="@android:color/white" />
</shape>
</item>
</ripple>
我该怎么做才能防止崩溃?
答案 0 :(得分:18)
API {21}中添加了RippleDrawable,因此早期的SDK无法使用它。
您可以将可绘制文件移动到 res / drawable-v21 ,以确保它不会在早期版本中崩溃。
答案 1 :(得分:10)
我遇到了同样的问题。
Mina Samy&#39; 的答案也解决了我的问题。
Atef Hares 要求在旧版本中提供替代方案。 对我有用的是使用选择器而不是纹波
例如:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#ccffffff" />
</shape>
</item>
<item android:state_focused="true">
<shape android:shape="rectangle">
<stroke android:color="@android:color/white" />
</shape>
</item>
<item android:drawable="@color/playColor" />
</selector>
其中
<color name="playColor">#E8EAF6</color>
答案 2 :(得分:1)
波纹只能从Lollipop(Android API 21)获得。这是一个向后兼容的示例,其中包括状态且没有默认背景(透明):
创建两个具有相同名称的可绘制xml
文件,一个将放置在drawable-v21
文件夹中,另一个将放置在常规drawable
文件夹中。
drawable-v21/ripple_red_solid.xml
:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@android:color/red">
<item android:id="@android:id/mask">
<color android:color="@android:color/red" />
</item>
<item>
<selector>
<item android:state_selected="true">
<color android:color="@android:color/red" />
</item>
<item android:state_activated="true">
<color android:color="@android:color/red" />
</item>
<item android:state_focused="true">
<color android:color="@android:color/red" />
</item>
</selector>
</item>
</ripple>
drawable/ripple_red_solid.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape android:shape="rectangle">
<solid android:color="@android:color/red" />
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="@android:color/red" />
</shape>
</item>
<item android:state_focused="true">
<shape android:shape="rectangle">
<solid android:color="@android:color/red" />
</shape>
</item>
</selector>
然后在像这样的视图上简单地使用它:
<LinearLayout
...
android:background="@drawable/ripple_red_solid" />