点击键盘的return键直接切换到下一个文本框(键盘不收回)

今天,碰到一个需求:登录界面,输入账号之后点击键盘的确定/next按钮切换到密码输入框
代码如下:

const dismissKeyboard = require('dismissKeyboard');

  dismissKeyboardClick = () => {
    dismissKeyboard();
  }

  focusNext = (nextField) => {
    this.refs[nextField].focus();
  }

  render() {
    return (
      <TouchableOpacity style={{ flex: 1 }} activeOpacity={1} onPress={() => this.dismissKeyboardClick()}>
        <View
          style={styles.container}
        >
          <View style={styles.flex}>
            <View style={styles.logoViewStyle}>
              <Image
                style={styles.logoStyle}
                source={logo}
              />
              <Text style={styles.title}>{this.state.loginTitle}</Text>
            </View>
          </View>
          <View style={styles.inputView}>
            <View style={[styles.view, styles.lineTopBottom]}>
              <Text style={styles.text}>账号:</Text>
              <TextInput
                style={styles.textInputStyle}
                underlineColorAndroid="white"
                placeholder="请输入账号"
                clearButtonMode="while-editing"
                secureTextEntry={false}
                returnKeyType="next"
                onSubmitEditing={() => this.focusNext('password')}
                onChangeText={(text) => {
                  this.setState({
                    username: text
                  });
                }}
                value={this.state.username}
              />
            </View>
            <View style={[styles.view, styles.lineTopBottom]}>
              <Text style={styles.text}>密码:</Text>
              <TextInput
                ref="password"
                style={styles.textInputStyle}
                underlineColorAndroid="white"
                placeholder="请输入密码"
                clearButtonMode="while-editing"
                secureTextEntry
                returnKeyType="go"
                onSubmitEditing={() => this.clickLoginBtn()}
                onChangeText={(text) => {
                  this.setState({
                    password: text
                  });
                }}
                value={this.state.password}
              />
            </View>
          </View>
          <View style={styles.buttonView}>
            <TouchableOpacity
              style={styles.button}
              onPress={() => this.clickLoginBtn()}
            >
              <Text style={styles.buttonText}>登 录</Text>
            </TouchableOpacity>
          </View>
          <View style={styles.changeRoleView}>
            <TouchableOpacity
              style={styles.changeRolebutton}
              onPress={() => this.changeRole(0)}
            >
              <Text style={styles.changeRoleText}>医疗端</Text>
            </TouchableOpacity>
            <TouchableOpacity
              style={styles.changeRolebutton}
              onPress={() => this.changeRole(1)}
            >
              <Text style={styles.changeRoleText}>客服端</Text>
            </TouchableOpacity>
          </View>
        </View>
      </TouchableOpacity>
    );
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,287评论 25 708
  • 吃货地图产品需求文档 V1.0-2015/03/30 1概述 1.1产品概述及目标 概述:“吃货地图”是一款基于i...
    michaelshan阅读 5,891评论 1 46
  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 1,373评论 0 1
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,232评论 4 61
  • 算法之插入排序 一:基本概念插入排序(Insert Sort),每次将一个待排序的数据元素,插入到前面已经排好序的...
    墨小飞阅读 276评论 0 0