前面一直使用Swipable組件,現在由於想給android加入水波紋效果,不想單獨封裝一個組件(現在可以直接使用0.63.x的Pressable組件),加上可能更好的效果,
但是發現了很多問題
版本: 最新的1.7.0
-
1.BaseButton、RectButton、BorderlessButton會導致style中設置border無效
-
2.BaseButton在android上面有水波紋效果,但是ios上就沒有按壓效果了,可以使用RectButton加上activeOpacity和underlayColor
//@ts-ignore
BaseButton.defaultProps = {
//@ts-ignore
...(BaseButton.defaultProps || {}),
rippleColor: "#e0e0e0"
};
//@ts-ignore
RectButton.defaultProps = {
//@ts-ignore
...(RectButton.defaultProps || {}),
underlayColor: '#e0e0e0',
activeOpacity: 0.8,
};
-
3.在上面三個組件中無法使用系統的Touchable**組件,完全沒反應,必須要替換為react-native-gesture-handler的對應的Touchable**組件
-
4.在
absolute
布局中使用react-native-gesture-handler的對應的Touchable**組件,里面的內容不會顯示 -
5.在RectButton中使用react-native-gesture-handler的對應的Touchable**組件, 並且將Touchable**組件設置為
disabled
,正常的邏輯是該部分可以響應到RectButton上面,但是目前該部分完全無法點擊
結論
react-native-gesture-handler的對應的Touchable**組件兼容性太差,得不償失
為了給android加上水波紋效果,還是單獨自己封裝一個組件,ios/android分別使用不同的Touchable組件,也就是Pressable組件的實現過程