当前位置: 首页 > news >正文

React Native 文本输入基础知识

在 React Native 中提供了一个文本输入组件TextInput。此组件主要是监听键盘输入事件,并把对应的输入值显示在组件中,此组件还提供了很多功能配置参数,例如自动更正、自动大写、占位符文本和不同的键盘类型(例如数字键盘)。

我们首先来编写一个简单的实例,使用onChangeText事件监听用户的输入:

export default function InputText() {const [name, setName] = useState<string>("");const [age, setAge] = useState<string>("");return (<View style={styles.container}><Text style={styles.mainTitle}>InputText 组件实例</Text><View style={styles.formItem}><Text style={styles.labelTitle}>姓名:</Text><TextInputstyle={styles.formInput}placeholder="请输入姓名"value={name}onChangeText={(value) => setName(value)}></TextInput></View><View style={styles.formItem}><Text style={styles.labelTitle}>年龄:</Text><TextInputstyle={styles.formInput}keyboardType="numeric"placeholder="请输入年龄"value={age}onChangeText={(value) => setAge(value)}></TextInput></View><View style={styles.infoContainer}><Text>姓名:{name}</Text><Text>年龄:{age}</Text></View></View>);
}const styles = StyleSheet.create({container: {margin: 8,},mainTitle: {fontSize: 22,fontWeight: "bold",padding: 10,borderBottomWidth: 1,borderColor: "#e3e3e3",},input: {borderWidth: 1,borderRadius: 4,borderColor: "#e3e3e3",marginVertical: 8,padding: 8,},formItem: {flexDirection: "row",justifyContent: "flex-start",alignItems: "center",rowGap: 8,columnGap: 8,marginVertical: 12,},labelTitle: {fontSize: 16,},formInput: {borderWidth: 1,borderRadius: 6,paddingHorizontal: 10,paddingVertical: 6,flex: 1,},infoContainer: {flexDirection: "row",marginVertical: 8,justifyContent: "center",alignItems: "center",rowGap: 8,columnGap: 8,},
});

TextInput组件除了可以监听onChangeText事件外,还可以监听.focus().blur()事件。并且此组件还可以通过设置multiline属性来允许用户输入多行文本数据,例如我们可以允许用户最多输入 4 行文本,字数最大 100 个字符:

<View style={styles.formItem}><Text style={styles.labelTitle}>备注:</Text><TextInputstyle={styles.formInput}multilinenumberOfLines={4}maxLength={100}placeholder="请输入备注"value={summary}></TextInput>
</View>

默认情况下,TextInput 在其视图底部有一个边框。该边框的内边距由系统提供的背景图像设置,并且无法更改。避免这种情况的解决方案是要么不显式设置高度,在这种情况下系统将负责在正确的位置显示边框,要么通过将 underlineColorAndroid 设置为透明来不显示边框。underlineColorAndroid此属性只是针对于安卓设备而言。

请注意,在 Android 上,在输入中执行文本选择可以将应用程序的活动 windowSoftInputMode 参数更改为 adjustmentResize。当键盘处于活动状态时,这可能会导致具有“绝对”位置的组件出现问题。要避免此行为,请在 AndroidManifest.xml 中指定 windowSoftInputMode 或使用本机代码以编程方式控制此参数。

http://www.lryc.cn/news/136250.html

相关文章:

  • qt显示图片并转换成灰度图及伪彩图
  • oj在线编程输入输出
  • 【LeetCode 算法】Add Two Integers 两整数相加-位运算
  • 企业网络日志安全与 EventLog Analyzer
  • 清风数学建模——拟合算法
  • 单片机 (一) 让LED灯 亮
  • c++——单例模式
  • C# 流Stream详解(2)——FileStream、BinaryReader、MemorySream、SreamReader等之间的关系
  • 【JavaSE】详解final关键字
  • 问道管理:机器人概念走势活跃,新时达涨停,拓斯达、丰立智能等大涨
  • elementui 修改日期选择器el-date-picker样式
  • 自己实现 SpringMVC 底层机制 系列之-实现任务阶段 6-完成控制器方法获取参数-@RequestParam
  • 数据可视化:图表绘制详解
  • 【中危】Apache Ivy<2.5.2 存在XXE漏洞 (CVE-2022-46751)
  • C#使用自定义的比较器对版本号(编码)字符串进行排序
  • AI在日常生活中的应用:从语音助手到自动驾驶
  • Windows10查看图片的分辨率
  • Spring事务和事务传播机制(2)
  • 计算机视觉 -- 图像分割
  • ubuntu18.04复现yolo v8之CUDA与pytorch版本问题以及多CUDA版本安装及切换
  • Redis三种模式——主从复制,哨兵模式,集群
  • mysql8.0.31新增只读远程普通用户
  • 揭开路由协议隐藏的风险
  • 图片因固定宽高被拉伸了?object-fit:一个神奇的属性
  • 客户案例:中圣科技—CAC2.0防范盗号威胁,加固安全防线
  • pandas数据分析40——读取 excel 合并单元格的表头
  • Java后端开发面试题——微服务篇总结
  • 第十一章MyBatis查询专题
  • 测试驱动开发(TDD)
  • 深度学习|CNN卷积神经网络