ScrollView не позволяет мне выбирать из выпадающего компонента - PullRequest
1 голос
/ 28 апреля 2020

Прежде всего позвольте мне поделиться своим кодом вместе с текущим результатом того, что я делаю.

return(
    <DismissKeyBoard>
    <View>   
       <Formik
            initialValues ={{user: 'User ', place: '', description: '', comments: '',datePosted: new Date(), location: '', eventDate: ''}}
            onSubmit ={logInfo}>
            {props =>(
                <SafeAreaView style={styles.container}>
                <ScrollView>
                <View style={styles.form}>    

                <Text  style={styles.text}>Pick a place for the event</Text>

                <GooglePlacesAutocomplete
                         placeholder='Insert place to find'
                         minLength={2}
                         keyboardAppearance={'light'}
                         fetchDetails={false} 
                         onPress={(data, details = null) => { // 'details' is provided when fetchDetails = true
                             {props.values.location= data.description}
                                 console.log("hello",props.values.location);
                                }}

                            styles={{
                            textInputContainer: {
                                backgroundColor: 'rgba(0,0,0,0)',
                                borderTopWidth: 0,
                                borderBottomWidth:0,
                                width: '100%',
                                },
                             textInput: {
                                fontSize: 16
                                },
                             predefinedPlacesDescription: {
                                color: '#1faadb',
                                height:'100%',
                                },
                            }}

                            query={{
                                key: '',
                                language: 'en', // language of the results
                              }}

                        />


                   <View style={styles.container}>    
                    <Text
                        placeholder= {props.values.user}
                        onChangeText = {props.handleChange('user')}
                        values = {props.values.user} 
                        style={styles.text}>{props.values.user}</Text>
                    <TextInput
                        placeholder= 'Place (e.g Honolulu)'
                        onChangeText = {props.handleChange('place')}
                        values = {props.values.place} 
                        style={styles.text}/>
                    <TextInput
                        placeholder= 'Description (e.g This is located...)'
                        onChangeText = {props.handleChange('description')}
                        values = {props.values.description} 
                        style={styles.text}/>
                    <TextInput
                        placeholder= 'Comment (e.g This is fun because...)'
                        onChangeText = {props.handleChange('comments')}
                        values = {props.values.comments} 
                        style={styles.text}/>
                    <Text  style={styles.text} >Pick a date for the event</Text>
                    <DatePicker
                        date={props.values.eventDate}
                        onDateChange={(date) => {props.values.eventDate= date}}
                        values = {props.values.eventDate} />
                    {/* <Text  style={styles.text}>Location</Text> */}

                    <View  style={styles.viewbtn}>
                        <TouchableOpacity onPress={props.handleSubmit} style={styles.btn} ><Text style={styles.txtbtn} >Submit</Text></TouchableOpacity>
                        {/* <Button title="Submit" onPress={props.handleSubmit}  /> */}
                    </View>

                    </View>    

            </View>
            </ScrollView>
            </SafeAreaView>

            )}
        </Formik> 
    </View>      
    </DismissKeyBoard>           
    )
}

const styles = StyleSheet.create({
    container:{
       // flex:1,
        paddingTop:20,
      //  margin: 10,
        alignItems: 'center'
    },
    // form:{
    //     alignItems: 'flex-start',
    //     paddingTop:40,

    // },
    text:{
        borderBottomWidth: StyleSheet.hairlineWidth,
        borderColor: 'black',
        paddingTop:15, 
    },
    viewbtn:{
        paddingTop:15,
    },
    btn:{
        backgroundColor: 'purple',
        padding:20,
        margin:20,
        width: 100,
        justifyContent: 'center',
        alignItems: 'center',
        borderRadius : 5,
    },
    txtbtn:{
        fontWeight: 'bold',
        fontSize: 14,
        color: 'orange'
    },
})

enter image description here

проблема

Когда я нажимаю на GooglePlacesAutoComplete, я могу видеть список мест, но затем, когда я нажимаю на любое из найденных мест, он не принимает ввод.

Наблюдения

  1. Когда <GooglePlacesAutocomplete /> НЕ находится внутри ScrollView, я не вижу предложения.
  2. Когда <GooglePlacesAutocomplete /> НЕ находится внутри других <View></View> работает отлично.

Предупреждение

С помощью приведенного выше кода я также получаю это предупреждение "Виртуализированные списки никогда не должны быть вложены в простые ScrollViews с той же ориентацией - используйте вместо этого другой контейнер с поддержкой VirtualizedList. "

Желаемый результат

Я бы хотел, чтобы компонент <GooglePlacesAutocomplete /> отображался сверху формы, без каких-либо странных ошибок и его функциональных возможностей, работающих должным образом. (Предпочтительно, как показано на рисунке)

Редактировать

Я импортирую import { GooglePlacesAutocomplete } from 'react-native-google-places-autocomplete'; из https://github.com/FaridSafi/react-native-google-places-autocomplete

I Я не эксперт в GUI, объяснение будет очень оценено и приветствовано. Если потребуется дополнительная информация, я буду рад предоставить ее.

Заранее спасибо.

1 Ответ

0 голосов
/ 29 апреля 2020

Хороший вопрос, может быть, SafeAreaView вместе с ScrollView портят выпадающий список? Я не уверен, любопытно узнать, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...