A simple wrapper for Android's Spinner
npm install --save react-native-dropdown-android
- In
android/setting.gradle
...
include ':ReactNativeDropdownAndroid', ':app'
project(':ReactNativeDropdownAndroid').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-dropdown-android/android')
- In
android/app/build.gradle
...
dependencies {
...
compile project(':ReactNativeDropdownAndroid')
}
- register module (in MainActivity.java)
import com.chymtt.reactnativedropdown.DropdownPackage; // <----- import
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(new MainReactPackage())
.addPackage(new DropdownPackage()) // <------ add here
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "ExampleRN", null);
setContentView(mReactRootView);
}
......
}
var Dropdown = require('react-native-dropdown-android');
...
render() {
return (
<Dropdown
style={{ height: 20, width: 200}}
values={[ '--Choose--', 'one', 2, 3.5, { four: 4 }, [ 5, 6, 7 ], false ]}
selected={1} onChange={(data) => { console.log(data); }} />
);
}
Right now you should always and only provide its height and width, otherwise the dropdown won't show up at all
An array of options. This should be provided with an array of strings. Any type other than string will be converted to its string representation
An int indicating which option (zero-based) is currently selected
Callback with data in the form data = { selected: 1, value: 'one' }
Feel free to open an issue
Pull requests are also welcome