記react-native-gesture-handler的組件使用


前面一直使用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組件的實現過程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM