react-native-android-picker

1.0.6 • Public • Published

react-native-android-picker

npm version react-native-android-picker

Introduction

Android Picker component based on React-native.

Since picker is originally supported by ios while Android only supports a ugly Spinner component. If you want to have the same user behaviour, you can use this.

The android component is based on https://github.com/AigeStudio/WheelPicker which runs super fast and smoothly. It also supports curved effect which make it exactly the same looking and feel as the ios picker.

How to use

Install component

npm i react-native-android-picker --save

Add in settings.gradle

include ':react-native-android-picker'
project(':react-native-android-picker').projectDir = new File(settingsDir, '../node_modules/react-native-android-picker/android')

Add in app/build.gradle

compile project(':react-native-android-picker')

Modify MainApplication

    import com.nclong87.ReactNativeWheelPickerPackage;
    ......

    protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
            new MainReactPackage(), new ReactNativeWheelPickerPackage()
        );
    }

Example code

import React, { Component } from 'react';
import {
    Platform,
    StyleSheet,
    Text,
    View,
} from 'react-native';


// import { WheelStraightPicker as PickerAndroid } from 'react-native-android-picker';
import { WheelCurvedPicker as PickerAndroid } from 'react-native-android-picker';
var PickerItem = PickerAndroid.Item;

export default class App extends Component<{}> {

    constructor(props) {
        super(props);
        this.state = {
            selectedItem : 2,
            itemList: ['1', '2', '3', '4', '5', '6', '7', '8', '9']
        };
    }

    onPickerSelect (index) {
        this.setState({
            selectedItem: index,
        })
    }

    render () {
        return (
            <View style={styles.container}>
                <Text style={styles.welcome}>
                    WheelCurvedPicker
                </Text>
                <PickerAndroid
                    style={{width: 70, height: 180}}
                    selectedValue={this.state.selectedItem}
                    itemStyle={{color:"white", fontSize:26}}
                    lineStrokeWidth={5}
                    onValueChange={(index) => this.onPickerSelect(index)}>
                        {this.state.itemList.map((value, i) => (
                            <PickerItem label={value} value={i} key={"money"+value}/>
                        ))}
                </PickerAndroid>
            </View>
        );
    }
}

const styles = StyleSheet.create({
    container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#1962dd',
  },
  welcome: {
        fontSize: 40,
        textAlign: 'center',
        margin: 10,
        color: '#ffffff',
    },
});

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i react-native-android-picker

      Weekly Downloads

      1

      Version

      1.0.6

      License

      ISC

      Unpacked Size

      300 kB

      Total Files

      18

      Last publish

      Collaborators

      • nclong87