react-native-animated-rolling-numbers
是一個 React Native 元件,它透過可自訂的樣式和動畫來對數位和緊湊符號(K、M、B、T)進行動畫處理。它旨在在數值之間創建平滑、引人注目的過渡。
影片中顯示的範例可在此處找到。
npm install react-native-animated-rolling-numbers
# or
yarn add react-native-animated-rolling-numbers
確保您的專案中安裝了react-native-reanimated
。請遵循此處的官方安裝指南:react-native-reanimated 安裝。
基本範例
import React , { useState } from "react" ;
import { View , StyleSheet , Button } from "react-native" ;
import { AnimatedRollingNumber } from "react-native-animated-rolling-numbers" ;
import { Easing } from "react-native-reanimated" ;
const App = ( ) => {
const [ value , setValue ] = useState ( 1200 ) ;
return (
< View style = { styles . container } >
< AnimatedRollingNumber
value = { value }
showPlusSign
showMinusSign
useGrouping
enableCompactNotation
compactToFixed = { 2 }
textStyle = { styles . digits }
spinningAnimationConfig = { { duration : 500 , easing : Easing . bounce } }
/ >
< Button
onPress = { ( ) => setValue ( value + Math . floor ( Math . random ( ) * 1000 ) ) }
title = "Increase"
/ >
< Button
onPress = { ( ) => setValue ( value - Math . floor ( Math . random ( ) * 1000 ) ) }
title = "Decrease"
/ >
< / View >
) ;
} ;
const styles = StyleSheet . create ( {
container : {
flex : 1 ,
justifyContent : "center" ,
alignItems : "center" ,
} ,
digits : {
fontSize : 32 ,
fontWeight : "bold" ,
paddingHorizontal : 2 ,
color : "#4A90E2" ,
} ,
} ) ;
export default App ;
影片中顯示的範例可在此處找到。
value: number
要顯示和動畫的數值。
showSign?: boolean
是否顯示數字的符號(例如“+”或“-”)。預設為false
。
showMinusSign?: boolean
是否顯示負數的減號。預設為true
。
showPlusSign?: boolean
是否顯示正數的加號。預設為false
。
toFixed?: number
以正常表示法顯示的小數位數。預設為undefined
。
useGrouping?: boolean
是否在數字格式中包含逗號/點(例如,1000987 -> 1,000,987)。預設為false
。
formattedText?: string
要顯示的自訂格式文字而不是數值。
locale?: Intl.LocalesArgument
用於數位格式化的區域設定。預設為"en-US"
。
enableCompactNotation?: boolean
對大數字啟用緊湊表示法(例如,1K、1M、1B、1T)。預設為false
。
compactToFixed?: number
以緊湊表示法顯示的小數位數。預設為undefined
。
fixedOnlyForCompact?: boolean
如果為 true,則僅對緊湊表示法套用小數精確度 (K/M/B/T)。預設為true
。
例子:
fixedOnlyForCompact
為true
且compactToFixed
為2
,則數字1500
將顯示為1.50K
,但數字999
將顯示為999
(沒有小數位)。fixedOnlyForCompact
為false
且compactToFixed
為2
,則數字1500
將顯示為1.50K
,數字999
將顯示為999.00
。containerStyle?: StyleProp
包裹動畫數字的容器的樣式。
digitContainerStyle?: StyleProp
包裝每個動畫數字的容器的樣式。
textProps?: React.ComponentProps
主要文字組件的道具。
numberTextProps?: React.ComponentProps
數位文字組件的道具。
commaTextProps?: React.ComponentProps
逗號文字組件的道具。
dotTextProps?: React.ComponentProps
小數點文字組件的道具。
compactNotationTextProps?: React.ComponentProps
緊湊符號文字組件(K、M、B、T)的道具。
signTextProps?: React.ComponentProps
符號文字組件的道具(如果使用)。
textStyle?: StyleProp
主要文字組件的樣式。
numberStyle?: StyleProp
數位文字組件的樣式。
commaStyle?: StyleProp
逗號文字組件的樣式。
dotStyle?: StyleProp
小數點文字組件的樣式。
compactNotationStyle?: StyleProp
緊湊符號文字組件的樣式。
signStyle?: StyleProp
符號文字組件的樣式。
spinningAnimationConfig?: object
數位動畫的配置。支持:
duration: number
:動畫的持續時間(以毫秒為單位)。reduceMotion: boolean
: 是否減少運動以實現可訪問性。easing: EasingFunction
:動畫的自訂緩動函數。animationCallback?: AnimationCallback
動畫完成時呼叫的回呼函數。
animateToNewValue?: (newValue: number, variant?: DigitVariant) => number
用於動畫值變化的自訂函數。預設為彈跳動畫。
如果您發現這個專案有用並且願意支持其持續開發,請考慮為我買杯咖啡!您的支持有助於保持創造力的醞釀,並使我能夠繼續改進和維護這個專案。謝謝你! ☕?