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

React Native第四章

好的 👍 我来帮你系统讲解一下 React Native 中这些组件与属性的用法、适用场景及常见搭配。
我们一起来看每个的作用、核心属性和示例代码。


🧩 一、TouchableWithoutFeedback

👉 “可点击区域”组件,没有视觉反馈。

📘 作用

让子组件响应点击事件,但不改变外观(比如不显示按下高亮、阴影等)。

⚙️ 常用属性

属性类型说明
onPressfunction点击触发的回调函数
onLongPressfunction长按触发的回调
disabledboolean是否禁用点击
childrenReactNode包裹的内容

🧠 常见用途

  • 点击空白区域关闭键盘

  • 自定义无样式点击区域

✅ 示例

import { TouchableWithoutFeedback, Keyboard, View, TextInput } from 'react-native';export default function App() {return (<TouchableWithoutFeedback onPress={() => Keyboard.dismiss()}><View style={{ flex: 1, justifyContent: 'center', padding: 20 }}><TextInput placeholder="点击空白处关闭键盘" /></View></TouchableWithoutFeedback>);
}

🟦 二、Button

👉 一个简单的内置按钮组件。

📘 作用

提供基础按钮交互,不需要手写 TouchableOpacity

⚙️ 常用属性

属性类型说明
titlestring按钮文字
onPressfunction点击事件
colorstring按钮文字或背景颜色(iOS/Android 样式略不同)
disabledboolean禁用状态

✅ 示例

import { Button, View } from 'react-native';export default function App() {return (<View style={{ padding: 20 }}><Button title="提交" onPress={() => alert('已提交')} color="#007BFF" /></View>);
}

🧾 三、ScrollView

👉 可滚动的视图容器。

📘 作用

在内容超出屏幕时,允许垂直或水平滚动。

⚙️ 常用属性

属性类型说明
horizontalboolean是否水平滚动
showsVerticalScrollIndicatorboolean显示垂直滚动条
keyboardDismissMode'none' | 'on-drag' | 'interactive'滚动时键盘处理方式
contentContainerStyleobject内容容器样式(作用于内部内容)
styleobjectScrollView 自身样式
refreshControl<RefreshControl />下拉刷新控件

✅ 示例

import { ScrollView, Text } from 'react-native';export default function App() {return (<ScrollViewcontentContainerStyle={{ paddingHorizontal: 20, paddingVertical: 40 }}keyboardDismissMode="on-drag">{[...Array(30)].map((_, i) => (<Text key={i} style={{ marginVertical: 10 }}>第 {i + 1} 行内容</Text>))}</ScrollView>);
}

🧮 四、keyboardDismissMode

👉 ScrollView / FlatList / SectionList 的属性之一。

📘 作用

控制当用户滚动时如何处理键盘。

⚙️ 取值说明

说明
'none'滚动时不隐藏键盘
'on-drag'用户拖动时关闭键盘
'interactive'用户开始拖动时键盘随滚动渐渐收起(仅 iOS 支持)

✅ 示例

<ScrollView keyboardDismissMode="on-drag"><TextInput placeholder="向下拖动时键盘会自动关闭" />
</ScrollView>

🧱 五、contentContainerStyle

👉 ScrollViewFlatList 的属性。

📘 作用

是内部 滚动内容容器的样式,不同于外层的 style(它是滚动视图本身的样式)。

✅ 示例

<ScrollViewstyle={{ backgroundColor: '#f8f8f8' }} // ScrollView外层contentContainerStyle={{paddingHorizontal: 20, // 内部左右内边距paddingBottom: 50,}}
><Text>这里是内容</Text>
</ScrollView>

🎨 六、paddingHorizontal

👉 View / Style 属性之一。

📘 作用

设置左右内边距(相当于 paddingLeft + paddingRight)。

✅ 示例

<View style={{ paddingHorizontal: 20, backgroundColor: '#fff' }}><Text>内容左右各留20间距</Text>
</View>

🧩 综合示例:常见登录页布局

import React from 'react';
import { View, Text, TextInput, Button, ScrollView, TouchableWithoutFeedback, Keyboard 
} from 'react-native';export default function LoginScreen() {return (<TouchableWithoutFeedback onPress={Keyboard.dismiss}><ScrollViewkeyboardDismissMode="on-drag"contentContainerStyle={{flexGrow: 1,justifyContent: 'center',paddingHorizontal: 24,}}><Text style={{ fontSize: 28, fontWeight: 'bold', marginBottom: 20 }}>登录</Text><TextInput placeholder="用户名" style={{ borderBottomWidth: 1, marginBottom: 16 }} /><TextInput placeholder="密码" secureTextEntry style={{ borderBottomWidth: 1, marginBottom: 32 }} /><Button title="登 录" onPress={() => alert('登录成功')} /></ScrollView></TouchableWithoutFeedback>);
}

✅ 功能说明:

  • 点击空白处关闭键盘 (TouchableWithoutFeedback + Keyboard.dismiss)

  • 输入时可滚动 (ScrollView)

  • 拖动时关闭键盘 (keyboardDismissMode="on-drag")

  • 内容左右留白 (paddingHorizontal)


是否希望我接下来帮你画一个结构图(或代码图示)展示它们在层级上的关系?
比如 TouchableWithoutFeedback → ScrollView → View/TextInput 的嵌套结构,可帮助理解事件传递和布局顺序。

http://www.dtcms.com/a/558714.html

相关文章:

  • 西安网站建设技术外包网站性能优化
  • 乐清网站的建设是在百度中建设网站?
  • 大连网站建设报价优质商家网络销售是什么工作内容
  • 鞋材加工东莞网站建设appstore下载免费软件
  • IOCP + 重叠I/O 实例代码
  • 东莞建设通网站免费百度seo引流
  • 网站建设专业英文WordPress分类登录可见
  • Jmeter压力测试详解:从入门到实战
  • 义乌建网站做任务的网站
  • 中山精品网站建设咨询建设信用卡激活中心网站
  • 专业的网站优化公司成都微信公众号定制
  • Linux网络HTTPS协议原理
  • AI短视频工具的“知识准确性”瓶颈,内容特工队AI如何通过RAG技术破局
  • 做押韵句子的网站建设网站龙华
  • 2、webgl 基本概念 + 绘制点
  • 重复打开同一个网站怎么做做网站广告软件
  • 高级系统架构师笔记——软件工程基础知识(3)逆向工程与需求工程
  • 山东网站建设seo软文推广广告公司
  • 精品成品网站入口网络推广计划书格式
  • 【Qt】 Qt5.14以下版本也可以使用 Q_TRACE_SCOPE啦 !!!
  • o2o网站建设怎么样北京市网站建设 维护推荐
  • 做平面设计在那个网站上找图好惠州做网站多少钱
  • Java接口规范升级 —— 给你的 Java 接口 “穿西装”(参数不瞎填,返回不乱码)
  • AI学习研究2025.11.1——deepseek-r1 1.5B 五轮问题下来暴露无法区别中英文
  • Dubbo 全解析:从入门到精通的分布式服务框架实战指南
  • 网站更改公司需要重新备案吗网站联盟怎么做
  • C与汇编深入分析
  • UDS中时间参数相关
  • 东莞网站制作建设项目之家
  • C++:链接的两难 —— ODR中的强与弱符号机制