React native circle slider using react-native-svg and PanResponder.
This component is built with React Native 0.39+
and works for Android and iOS.
Install react-native-svg library
Installation instructions here.
Import CircleSlider.js
import CircleSlider from './CircleSlider';
Basic Usage
import React, { Component } from 'react';
import { View } from 'react-native';
import CircleSlider from './CircleSlider';
export default class CircleSliderContainer extends Component {
render() {
return (
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
<CircleSlider
value={90}
/>
</View>
)
}
}
Property name | Type | Default | Description |
---|---|---|---|
btnRadius | number | 15 | The radius of the small button |
dialRadius | number | 130 | The radius of the circle slider |
dialWidth | number | 5 | The width of the slider line |
meterColor | string | '#0cd' | The color of slider line |
onValueChange | function | x => x | Value to print on button (x=degrees) |
textColor | string | '#fff' | The color of the button text |
textSize | number | 10 | The size of the button text |
value | number | 0 | The value of the slider (degrees) |
xCenter | number | Screen center | The x coordinates of rotation center |
yCenter | number | Screen center | The y coordinates of rotation center |
There seems to be an error in the React Native code where locationX and locationY do not update themselves and stay as the coordinates of the first touch. A small work-around was used for now by setting the coordinates for the rotation center.
GNU General Public License v3.0