按下按钮只会关闭键盘

如何解决按下按钮只会关闭键盘

我有一个Modal,其中包含一个TextInput一个Button。打开模式对话框后,将出现键盘,该键盘使您可以在TextInput中输入文本。

我的问题是,当我第一次按下按钮时,键盘关闭了,但是按钮onPress方法没有被触发。

import React from 'react';
import {
  StyleSheet,View,Modal,Text,TextInput,InteractionManager,ScrollView,TouchableWithoutFeedback,TouchableOpacity,Keyboard,} from 'react-native';

import theme from '../../styles/theme.style';

import { MaterialCommunityIcons } from '@expo/vector-icons';

import I18n from '../../utils/i18n';

class RenameDrillModal extends React.Component {
  // Enables to open the keyboard when the component is rendered
  inputRef = React.createRef();

  componentDidMount() {
    this.focusInputWithKeyboard();
  }

  focusInputWithKeyboard() {
    InteractionManager.runAfterInteractions(() => {
      this.inputRef.current.focus();
    });
  }

  render() {
    return (
      <View>
        <Modal
          animationType="fade"
          transparent
          visible
          onRequestClose={() => {
            this.props.close();
          }}
        >
          {/* The sole purpose of the three following tags (TouchableOpacity,TouchableWithoutFeedback) is to close the modal when clicking outside of it */}
          <TouchableOpacity
            activeOpacity={1}
            style={{ flex: 1,justifyContent: 'center',alignItems: 'center' }}
            onPressOut={() => {
              this.props.close();
            }}
          >
            <ScrollView directionalLockEnabled>
              <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
                <View style={styles.modalTitleView}>
                  <Text style={styles.modalTitleText}>{`${this.props.drillTitle}`}</Text>

                  <View style={{ minWidth: '50%',flexDirection: 'row' }}>
                    <TextInput
                      style={{ minWidth: '90%',margin: 5,marginBottom: 0,flex: 1 }}
                      placeholder={I18n.t('drillEditor.drillManager.clickHeretoRename')}
                      onChangeText={text => this.props.textModified(text)}
                      ref={this.inputRef}
                    />

                    <MaterialCommunityIcons
                      name="check"
                      color={theme.COLOR_PRIMARY}
                      size={26}
                      onPress={() => {
                        console.log('Rename,onPress called');
                        this.props.close();
                        this.props.confirmNewName();
                      }}
                    />
                  </View>
                </View>
              </TouchableWithoutFeedback>
            </ScrollView>
          </TouchableOpacity>
        </Modal>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  modalTitleView: {
    margin: 20,backgroundColor: 'white',borderRadius: 20,padding: 20,alignItems: 'center',shadowColor: '#000',shadowOffset: {
      width: 0,height: 2,},shadowOpacity: 0.25,shadowRadius: 3.84,elevation: 5,modalTitleText: {
    fontWeight: 'bold',fontSize: 20,marginBottom: 15,textAlign: 'center',item: {
    backgroundColor: theme.BACKGROUND_COLOR_LIGHT,padding: 8,borderRadius: 10,marginVertical: 8,marginHorizontal: 8,flexDirection: 'row',justifyContent: 'space-between',});

export default RenameDrillModal;

第二次按下该按钮即可,但是您知道我既可以关闭键盘又可以只按一次按钮来按下按钮吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?