react-native-movable-view
Version:
Performance friendly movable component for React Native.
94 lines (70 loc) • 1.99 kB
Markdown
# React Native Movable View
Simple component that make your views movable.
It is using PanResponder so it is **performance friendly :)**
### Installation
```javascript
npm install react-native-movable-view --save
```
### Demo
### Usage
1. Import:
```javascript
import MovableView from 'react-native-movable-view'
```
2. Wrap your views:
```javascript
<MovableView>
{views_you_want_to_be_movable}
</MovableView>
```
3. That's all. Now you can restart your app and enjoy movable view ;)
*Example:*
```javascript
<MovableView>
<View style={{
width: 60, height: 60,
backgroundColor:'red',
borderRadius: 30 }}
/>
</MovableView>
```
### Callbacks
**MovableView** contains 3 basic callbacks so you can have move control about what is happening.
*Example of getting x and y coordinates of our view:*
```javascript
<MovableView
onMove={ values => console.warn(values) } >
...
</MovableView>
```
*Table of all available callbacks:*
|Name|Note|
|---|---|
| onDragStart | Executed when user starts dragging object around |
| onDragEnd | Executed when user stops dragging. |
| onMove | Executed when user is dragging view. **Returns current position of view.** |
### Advanced Usage #1
You can control if the view can be movable using **disabled** prop.
*Example (this will make view **unmovable**):*
```javascript
<MovableView disabled={true}>
...
</MovableView>
```
*Default value is **false***.
You can change disabled status any time using **changeDisableStatus()** method.
*For this first of all you need to create reference to your MovableView*:
*Example:*
```javascript
<MovableView ref={ref => this.move = ref}>
...
</MovableView>
```
Having this reference you can change disabled status like this:
```javascript
this.move.changeDisableStatus();
```
### Support
In case of any problem or more custom solution you can email me at:
tomasz.przybyl.it@gmail.com
**I hope you will find this module useful. Happy Coding :)**