当键盘打开时,我需要点击两次才能生效——React Native。

8

我有一个React Native项目,我创建了一个视图,它有一个按钮。当用户没有打开键盘时,他只需单击一次,但是如果打开了键盘,用户需要点击两次,因为在用户单击按钮时没有起作用。 它应该被隐藏。

有人知道如何使点击功能在键盘打开时也能生效吗?

代码如下:

 return (
        <ScrollView>
      <View style={LoginStyles.container_login}>
        <View style={LoginStyles.container_detail}>
          <View style={LoginStyles.container_components}>
            <View  style={LoginStyles.container_image}>
              <Image
                  style={LoginStyles.container_display_image}
                  source={logo}/>
            </View>
            <TextInput style={LoginStyles.container_user} placeholder = {labelApp.holderUser}  onChangeText={(user) => this.checkDataEmail(user)}/>
            <TextInput  secureTextEntry={true}  style={LoginStyles.container_password} placeholder = {labelApp.holderPassword} onChangeText={(password) => this.checkDataPassword(password)}/>
            <TouchableOpacity disabled={ this.state.disabled }
                              style={this.state.disabled ? LoginStyles.button_disabled: LoginStyles.button_login}
              onPress={this.handleClickBtnEnter}
            >
              <Text style={LoginStyles.text_button_login}>
                {labelApp.textButtonLogin}
              </Text>
            </TouchableOpacity>
            <Text
              style={LoginStyles.text_forgot_password}
              onPress={this.handleClickBtnEnter}
            >
              {labelApp.textForgotUser}
            </Text>
            <Text
              style={LoginStyles.text_register}
              onPress={this.handleClickBtnEnter}
            >
              {labelApp.textRegister}
            </Text>
            <View style={LoginStyles.container_image_share}>
              <Image style={LoginStyles.container_display_share}
                     source={facebook}/>
              <Image  style={LoginStyles.container_display_share}
                  source={google}/>
            </View>
            <View  style={LoginStyles.container_image}>
              <Image
                  style={LoginStyles.container_display_register}
                  source={register}/>
            </View>
          </View>
        </View>
      </View>
        </ScrollView>
    );

这个事件是在TouchableOpacity上触发的。

1个回答

12

尝试将ScrollView上的keyboardShouldPersistTaps值设置为handled,如下所示:

 return (
        <ScrollView keyboardShouldPersistTaps='handled'>
          ...
        </ScrollView>
    );

1
嗨,CampbellMG,我检查了keyboardShouldPersistTaps,它起作用了,但是键盘没有关闭。 - Alejandro Gonzalez
1
如果您需要隐藏键盘,您可以在 onPress 函数中调用 Keyboard.dismiss()。 - CampbellMG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,