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,83 +4,80 @@ ...@@ -4,83 +4,80 @@
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 {
let date = [];
for(let i=1950;i<2050;i++){ constructor(props, context) {
let month = []; super(props, context);
for(let j = 1;j<13;j++){ }
let day = [];
if(j === 2){ _createDateData() {
for(let k=1;k<29;k++){ let date = [];
day.push(k+''); for(let i=1950;i<2050;i++){
} let month = [];
//Leap day for years that are divisible by 4, such as 2000, 2004 for(let j = 1;j<13;j++){
if(i%4 === 0){ let day = [];
day.push(29+''); if(j === 2){
for(let k=1;k<29;k++){
day.push(k+'');
}
//Leap day for years that are divisible by 4, such as 2000, 2004
if(i%4 === 0){
day.push(29+'');
}
} }
} else if(j in {1:1, 3:1, 5:1, 7:1, 8:1, 10:1, 12:1}){
else if(j in {1:1, 3:1, 5:1, 7:1, 8:1, 10:1, 12:1}){ for(let k=1;k<32;k++){
for(let k=1;k<32;k++){ day.push(k+'');
day.push(k+''); }
} }
} else{
else{ for(let k=1;k<31;k++){
for(let k=1;k<31;k++){ day.push(k+'');
day.push(k+''); }
} }
let _month = {};
_month[j+''] = day;
month.push(_month);
} }
let _month = {}; let _date = {};
_month[j+''] = day; _date[i+''] = month;
month.push(_month); date.push(_date);
} }
let _date = {}; return date;
_date[i+''] = month;
date.push(_date);
} }
return date;
};
function createAreaData(callback){
fetch('https://raw.githubusercontent.com/beefe/react-native-picker/master/example/PickerTest/area.json').then(res => {
res.json().then(area => {
let data = [];
let len = area.length;
for(let i=0;i<len;i++){
let city = [];
for(let j=0,cityLen=area[i]['city'].length;j<cityLen;j++){
let _city = {};
_city[area[i]['city'][j]['name']] = area[i]['city'][j]['area'];
city.push(_city);
}
let _data = {}; _createAreaData() {
_data[area[i]['name']] = city; let data = [];
data.push(_data); let len = area.length;
for(let i=0;i<len;i++){
let city = [];
for(let j=0,cityLen=area[i]['city'].length;j<cityLen;j++){
let _city = {};
_city[area[i]['city'][j]['name']] = area[i]['city'][j]['area'];
city.push(_city);
} }
callback(data);
});
}, err => {
console.log(err);
});
};
export default class PickerTest extends Component {
constructor(props, context) { let _data = {};
super(props, context); _data[area[i]['name']] = city;
data.push(_data);
}
return data;
} }
_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,22 +93,20 @@ export default class PickerTest extends Component { ...@@ -96,22 +93,20 @@ export default class PickerTest extends Component {
} }
_showAreaPicker() { _showAreaPicker() {
createAreaData(data => { Picker.init({
Picker.init({ pickerData: this._createAreaData(),
pickerData: data, selectedValue: ['河北', '唐山', '古冶区'],
selectedValue: ['河北', '唐山', '古冶区'], onPickerConfirm: pickedValue => {
onPickerConfirm: pickedValue => { console.log('area', pickedValue);
console.log('area', pickedValue); },
}, onPickerCancel: pickedValue => {
onPickerCancel: pickedValue => { console.log('area', pickedValue);
console.log('area', pickedValue); },
}, onPickerSelect: pickedValue => {
onPickerSelect: pickedValue => { console.log('area', pickedValue);
console.log('area', pickedValue); }
}
});
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
...@@ -26,7 +26,7 @@ RCT_EXPORT_MODULE(); ...@@ -26,7 +26,7 @@ RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){ RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){
self.window = [[UIApplication sharedApplication].windows lastObject]; self.window = [[UIApplication sharedApplication].windows lastObject];
NSString *pickerConfirmBtnText=indic[@"pickerConfirmBtnText"]; NSString *pickerConfirmBtnText=indic[@"pickerConfirmBtnText"];
NSString *pickerCancelBtnText=indic[@"pickerCancelBtnText"]; NSString *pickerCancelBtnText=indic[@"pickerCancelBtnText"];
...@@ -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