Commit cf30fbc6 authored by xwenliang's avatar xwenliang

Fix when keyboard show and hide then picker disappear on ios #102

parent 3a9d4388
/** /**
* react-native-picker example for android * react-native-picker example for android
*/ */
import './index.js';
import { \ No newline at end of file
AppRegistry
} from 'react-native';
import PickerTest from './index.js';
AppRegistry.registerComponent('PickerTest', () => PickerTest);
\ No newline at end of file
/** /**
* react-native-picker example for ios * react-native-picker example for ios
*/ */
import './index.js';
import { \ No newline at end of file
AppRegistry
} from 'react-native';
import PickerTest from './index.js';
AppRegistry.registerComponent('PickerTest', () => PickerTest);
...@@ -4,15 +4,24 @@ ...@@ -4,15 +4,24 @@
import React, {Component} from 'react'; import React, {Component} from 'react';
import { import {
AppRegistry,
View, View,
Text, Text,
TextInput,
TouchableOpacity, TouchableOpacity,
Dimensions Dimensions
} from 'react-native'; } from 'react-native';
import Picker from 'react-native-picker'; import Picker from 'react-native-picker';
import area from './area.json';
function createDateData(){ class PickerTest extends Component {
constructor(props, context) {
super(props, context);
}
_createDateData() {
let date = []; let date = [];
for(let i=1950;i<2050;i++){ for(let i=1950;i<2050;i++){
let month = []; let month = [];
...@@ -46,11 +55,9 @@ function createDateData(){ ...@@ -46,11 +55,9 @@ function createDateData(){
date.push(_date); date.push(_date);
} }
return date; return date;
}; }
function createAreaData(callback){ _createAreaData() {
fetch('https://raw.githubusercontent.com/beefe/react-native-picker/master/example/PickerTest/area.json').then(res => {
res.json().then(area => {
let data = []; let data = [];
let len = area.length; let len = area.length;
for(let i=0;i<len;i++){ for(let i=0;i<len;i++){
...@@ -65,22 +72,12 @@ function createAreaData(callback){ ...@@ -65,22 +72,12 @@ function createAreaData(callback){
_data[area[i]['name']] = city; _data[area[i]['name']] = city;
data.push(_data); data.push(_data);
} }
callback(data); return data;
});
}, err => {
console.log(err);
});
};
export default class PickerTest extends Component {
constructor(props, context) {
super(props, context);
} }
_showDatePicker() { _showDatePicker() {
Picker.init({ Picker.init({
pickerData: createDateData(), pickerData: this._createDateData(),
selectedValue: ['2015年', '12月', '12日'], selectedValue: ['2015年', '12月', '12日'],
onPickerConfirm: pickedValue => { onPickerConfirm: pickedValue => {
console.log('date', pickedValue); console.log('date', pickedValue);
...@@ -96,9 +93,8 @@ export default class PickerTest extends Component { ...@@ -96,9 +93,8 @@ export default class PickerTest extends Component {
} }
_showAreaPicker() { _showAreaPicker() {
createAreaData(data => {
Picker.init({ Picker.init({
pickerData: data, pickerData: this._createAreaData(),
selectedValue: ['河北', '唐山', '古冶区'], selectedValue: ['河北', '唐山', '古冶区'],
onPickerConfirm: pickedValue => { onPickerConfirm: pickedValue => {
console.log('area', pickedValue); console.log('area', pickedValue);
...@@ -111,7 +107,6 @@ export default class PickerTest extends Component { ...@@ -111,7 +107,6 @@ export default class PickerTest extends Component {
} }
}); });
Picker.show(); Picker.show();
});
} }
_toggle() { _toggle() {
...@@ -139,7 +134,21 @@ export default class PickerTest extends Component { ...@@ -139,7 +134,21 @@ export default class PickerTest extends Component {
<TouchableOpacity style={{marginTop: 10, marginLeft: 20}} onPress={this._isPickerShow.bind(this)}> <TouchableOpacity style={{marginTop: 10, marginLeft: 20}} onPress={this._isPickerShow.bind(this)}>
<Text>isPickerShow</Text> <Text>isPickerShow</Text>
</TouchableOpacity> </TouchableOpacity>
<TextInput
placeholder="test picker with input"
style={{
height: 40,
borderColor: 'gray',
borderWidth: 1,
marginLeft: 20,
marginRight: 20,
marginTop: 10,
padding: 5
}}
/>
</View> </View>
); );
} }
}; };
AppRegistry.registerComponent('PickerTest', () => PickerTest);
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
@property(nonatomic,strong)BzwPicker *pick; @property(nonatomic,strong)BzwPicker *pick;
@property(nonatomic,assign)float height; @property(nonatomic,assign)float height;
@property(nonatomic,strong) UIWindow * window; @property(nonatomic,weak)UIWindow * window;
@end @end
...@@ -56,7 +56,7 @@ RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){ ...@@ -56,7 +56,7 @@ RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){
}]; }];
if ([[UIDevice currentDevice].systemVersion doubleValue] >= 9.0 ){ if ([[UIDevice currentDevice].systemVersion doubleValue] >= 9.0 ) {
self.height=250; self.height=250;
}else{ }else{
self.height=220; self.height=220;
......
{ {
"name": "react-native-picker", "name": "react-native-picker",
"version": "4.0.10", "version": "4.0.11",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment