react本机键盘感知滚动视图isn';t在Android上滚动

react本机键盘感知滚动视图isn';t在Android上滚动,android,react-native,react-native-android,react-native-scrollview,react-native-textinput,Android,React Native,React Native Android,React Native Scrollview,React Native Textinput,react本机键盘感知滚动视图在Android上无法滚动这是一个问题,因为 当我单击顶部的文本输入时,它将退出视图,并且我无法将其滚动到视图中 我补充说 android:WindowsOfInputMode=“adjustPan” 到android清单,我在文件顶部导入了react本机键盘感知滚动视图。这是我的代码 <View> <TouchableOpacity style={this.props.addressDisplayStyle} accessibi

react本机键盘感知滚动视图在Android上无法滚动这是一个问题,因为 当我单击顶部的文本输入时,它将退出视图,并且我无法将其滚动到视图中

我补充说

android:WindowsOfInputMode=“adjustPan”

到android清单,我在文件顶部导入了react本机键盘感知滚动视图。这是我的代码

<View>
        <TouchableOpacity style={this.props.addressDisplayStyle} accessibilityLabel={'addressSelected'} onPress={() => this.setState({showModal: true})}>
          <Text numberOfLines={6} ellipsizeMode ={'tail'} style={[styles.text, styles.secondaryText, styles.selectedText, styles.addressText]}>{this.props.address}</Text>
        </TouchableOpacity>
        <Modal
                animationType="fade"
                transparent={true}
                visible={this.state.showModal}
            onRequestClose={() => this.closeModal()}
              >
          <KeyboardAwareScrollView
            resetScrollToCoords={{ x: 0, y: 0 }}
            contentContainerStyle={[styles.fadedBackground, { justifyContent: 'center', flexGrow: 1}]}
            scrollEnabled={true}
            enableAutomaticScroll={(Platform.OS === 'ios')}
            enableOnAndroid={true}
          >
              <View style={styles.modalContainer}>
                <Text style={[styles.text, styles.titleText]}>Enter Address</Text>
            <TextInput
              maxLength={300}
              multiline = {false}
              placeholder = {'123 Street'}
              style = {[styles.text, styles.inputText, styles.inputTextCustom]}
              onChangeText={(changedText) => this.setState({street: changedText})}
              value={this.state.street}
            />
            <TextInput
              maxLength={300}
              multiline = {false}
              placeholder = {'Apt #'}
              style = {[styles.text, styles.inputText, styles.inputTextCustom]}
              onChangeText={(changedText) => this.setState({street2: changedText})}
              value={this.state.street2}
            />
            <TextInput
              maxLength={300}
              multiline = {false}
              placeholder = {'city'}
              style = {[styles.text, styles.inputText, styles.inputTextCustom]}
              onChangeText={(changedText) => this.setState({city: changedText})}
              value={this.state.city}
            />
            <TextInput
              maxLength={2}
              multiline = {false}
              placeholder = {'State'}
              style = {[styles.text, styles.inputText, styles.inputTextCustom]}
              onChangeText={(changedText) => this.setState({state: changedText})}
              value={this.state.state}
            />
            <TextInput
              maxLength={10}
              keyboardType={'numeric'}
              multiline = {false}
              placeholder = {'Zipcode'}
              style = {[styles.text, styles.inputText, styles.inputTextCustom]}
              onChangeText={(changedText) => this.setState({zipcode: changedText})}
              value={this.state.zipcode}
            />
            {this.state.loading?
              <Loading />
              :
              null
            }
              </View>
        </KeyboardAwareScrollView>
            </Modal>
      </View>

this.setState({showmodel:true}}>
{this.props.address}
this.closeModal()}
>
输入地址
this.setState({street:changedText})
值={this.state.street}
/>
this.setState({street2:changedText})
值={this.state.street2}
/>
this.setState({city:changedText})
值={this.state.city}
/>
this.setState({state:changedText})}
值={this.state.state}
/>
this.setState({zipcode:changedText})}
值={this.state.zipcode}
/>
{this.state.loading?
:
无效的
}

我曾尝试在KeyboardawarScrollView之前和之后添加scrollview,并有一个视图来扭曲它,但我似乎无法让它在android上运行

这就是我在键盘出现和滚动时如何处理文本输入隐藏问题的方法。我确实使用了这个库,但没有得到想要的结果。我查看了源代码,并使用本机组件提出了自己的解决方案

这里是我的呈现方法:请注意,我已经创建了一些包装器组件,比如Button和CustomizedTestePut,但是ScrollView的属性应该可以满足您的需要

  <ScrollView keyboardShouldPersistTaps="handled"
      showsVerticalScrollIndicator={false}>

        {this.renderImage(styles)}
        <View style={styles.container}>
        <View style={styles.buttons}>
            <TouchableOpacity
              style={[styles.button,social,{justifyContent:'center'}]}>
              <Icon name={'logo-facebook'} size={25} style={[awesome,hero,accentColor,center,{alignSelf:'center'}]}/>
            </TouchableOpacity>
            <TouchableOpacity
              style={[styles.button,social,{justifyContent:'center'}]}
              >
              <Icon name={'logo-twitter'} size={25} style={[awesome,hero,accentColor,center,{alignSelf:'center'}]}/>
            </TouchableOpacity>
            <TouchableOpacity
              style={[styles.button,social,{justifyContent:'center'}]} >
              <Icon name={'logo-google'} size={25} style={[awesome,hero,accentColor,center,{alignSelf:'center'}]}/>
            </TouchableOpacity>
          </View>
          <CustomizedTextInput
            placeholder='Username'
            autoCapitalize="none"
            autoCorrect={false}
            backgroundColor={Theme[this.props.theme].colors.control.background}
            borderColor={Theme[this.props.theme].colors.border.base}
            borderRadius={24}
            placeholderTextColor={baseColor.color}
            value={this.state.username}
            onChangeText={val => this.onChangeText('username', val)}
          />
          <CustomizedTextInput
            placeholder='Password'
            autoCapitalize="none"
            autoCorrect={false}
            backgroundColor={Theme[this.props.theme].colors.control.background}
            borderColor={Theme[this.props.theme].colors.border.base}
            borderRadius={24}
            placeholderTextColor={baseColor.color}
            value={this.state.password}
            onChangeText={val => this.onChangeText('password', val)}
          />
              <Button
                  text='LOGIN'
                  borderRadius={24}
                  color={Theme[this.props.theme].colors.gradients.base[0]}
                  style={[{width: 300},{height:50},baseColor,styles.save]}
                  textStyle={[inverseColor]}
                  onPress={this.signIn}
                />

                <View style={styles.footer}>
                <View style={styles.textRow}>
                  <Text style={[primary3, baseColor]}>Don’t have an account? </Text>
                  <TouchableOpacity
                  onPress={()=>this.props.navigation.navigate('auth.signup')}
                  style={[clear]} >
                  <Text style={[header6, baseColor]}>Sign up now</Text>
                </TouchableOpacity>
                </View>
              </View>


          </View>
          </ScrollView>

{this.renderImage(样式)}
this.onChangeText('username',val)}
/>
this.onChangeText('password',val)}
/>
你没有账户吗?
this.props.navigation.navigate('auth.signup')}
样式={[clear]}>
现在就报名吧

谢谢Ahsan,我没有意识到scrollview有键盘和Persisttaps,我仍然没有理想的功能,但这确实允许更好的UX,所以我删除了其他库。对您来说,本地组件总是比第三方库更好。。。但是是的,获得理想的功能也总是不同的。我的建议是在使用第三方库之前查看源代码,大多数情况下,解决方案只是一行代码。