React Native KeyboardAvoidingView 无法正常工作

2023-12-10

我正在尝试使用带有行为=“padding”的KeyboardAvoidingView。

当我尝试在 TextInput 中输入任何文本时,TextInput 字段不会向上移动。我最后添加了一个正在向上移动的小视图,但它上面的视图。

我还有带有偏移量的 KeyboardAvoidingView height 属性。它只运行几个组件,例如 2 个 TextInputs。但是当我添加所有组件时,用户界面变得疯狂并且行为混乱。

知道这里发生了什么吗?

这里的link我遵循的教程。

render() {
    return (
        <View style={styles.backgroundContainer}>
            <Loader
                loading={this.state.isLoading} />
            <KeyboardAvoidingView
                keyboardVerticalOffset={10}
                style={styles.mainContainer}
                behavior='padding' >
                <View style={styles.formContainer}>
                    <View style={[styles.centerContainer, { marginTop: 40 }]}>
                        <Image source={require('./../../Resources/logo.png')} />
                        <Text style={{ fontWeight: 'bold', color: 'gray', fontSize: 25 }}>AppName</Text>
                        <Text style={styles.loginMsg}> Login to your Account </Text>
                    </View>
                    <View style={styles.inputFieldsContainer}>
                        <Image style={{ width: 30, height: 30, margin: 5 }} source={require('./../../Resources/logo.png')} />
                        <TextInput
                            placeholder='Email'
                            returnKeyType='next'
                            keyboardType='email-address'
                            onChangeText={(value) => this.setState({ userEmail: value })}
                            onSubmitEditing={() => this.passwordInput.focus()}
                            style={styles.inputFields} />
                    </View>
                    <View style={styles.inputFieldsContainer}>
                        <Image style={{ width: 30, height: 30, margin: 5, }} source={require('./../../Resources/logo.png')} />
                        <TextInput
                            returnKeyType='go'
                            secureTextEntry
                            placeholder='Password'
                            ref={(input) => this.passwordInput = input}
                            onChangeText={(value) => this.setState({ password: value })}
                            style={styles.inputFields} />
                    </View>
                    <View style={styles.buttonContainer}>
                        <Button
                            fontSize='8'
                            color='gray'
                            title='Remember Me'
                            onPress={() => {
                                console.log('Remember Me Clicked');
                            }} />
                        <Button
                            color='gray'
                            title='Forgot Password?'
                            onPress={() => {
                                console.log('Forgot Password Clicked');
                            }} />
                    </View>
                    <TouchableOpacity
                        style={styles.buttonLogin}
                        onPress={() => {
                                console.log('Login Clicked');
                        }}
                    >
                        <Text style={{ fontSize: 20, fontWeight: 'bold', color: 'white' }}>Login</Text>
                    </TouchableOpacity>
                    <View style={{ height: 1, backgroundColor: 'gray', marginTop: 20, marginBottom: 1 }}>
                    </View>
                    <View style={[styles.centerContainer, { marginBottom: 10 }]}>
                        <Text style={styles.loginMsg}>Don't have a Account</Text>
                        <TouchableOpacity
                            style={styles.buttonRegister}
                            onPress={() => navigate('Register')} >
                            <Text style={styles.buttonRegisterText}>REGISTER NOW</Text>
                        </TouchableOpacity>
                    </View>
                </View>
                <View style={{ height: 10, backgroundColor: '#628499', }}>
                </View>
            </KeyboardAvoidingView>
        </View>
    );
}
const styles = StyleSheet.create({
backgroundContainer: {
    flex: 1, backgroundColor: 'green'
},
mainContainer: {
    flex: 1, margin: 25,
    borderWidth: 1, borderRadius: 5, borderColor: 'gray',
    backgroundColor: 'white',
    justifyContent: 'space-between'
},
formContainer: {
    flex: 1, paddingLeft: 25, paddingRight: 25
},
centerContainer: {
    alignItems: 'center', marginBottom: 10,
},
loginMsg: {
    margin: 10,
    fontSize: 20, color: 'gray'
},
inputFieldsContainer: {
    flexDirection: 'row', margin: 10,
    borderWidth: 1, borderRadius: 5, borderColor: 'gray',
},
inputFields: {
    flexGrow: 1,
    marginTop: 5, marginBottom: 5,
    height: 30,
    backgroundColor: 'rgba(255,255,255,0.4)',
    paddingHorizontal: 10,
},
buttonContainer: {
    flexDirection: 'row',
    justifyContent: 'space-between'
},
buttonLogin: {
    alignItems: 'center', height: 40, marginTop: 10, marginLeft: 50, marginRight: 50, padding: 5,
    backgroundColor: '#2980b9',
    borderWidth: 1, borderRadius: 5, borderColor: 'gray'
},
buttonRegister: {
    alignItems: 'center', height: 40,
    marginLeft: 50, marginRight: 50
},
buttonRegisterText: {
    fontSize: 20, fontWeight: 'bold', color: 'gray'
},
loading: {
    position: 'absolute',
    left: 0, right: 0, top: 0, bottom: 0,
    alignItems: 'center', justifyContent: 'center'
}, });

我使用了KeyboardAvoidingView,它也不起作用。 我找到了这个解决方案,您可以获取基本代码。

安装

npm i react-native-keyboard-aware-scroll-view --save

Usage

import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'
<KeyboardAwareScrollView>
  <View>
    <TextInput />
  </View>
</KeyboardAwareScrollView>

你可以找到它here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native KeyboardAvoidingView 无法正常工作 的相关文章

  • iOS 中如何清除特定域的 cookie?

    我已经搜索了 StackOverflow 上的几乎所有问题来寻找我的问题的答案 我还没有找到任何有用的链接或教程来说明哪种方式最好清除特定域的 cookie 如果有人可以帮助我 请 我自己找到了解决方案 如果您想删除 UIWebView 中
  • 如何在 iOS 中查找蓝牙音频设备

    好的 我正在开发一个有趣的项目 该项目有一个障碍 我需要为我的 iOS 应用程序启用蓝牙音频支持 我遇到的障碍是我什至无法开始获取已连接的蓝牙音频设备的列表 即使我的 iPhone 5S 可以识别我的耳机 大约 3 4 岁的耳机 LG HB
  • 如何在 iOS 上压缩 Realm DB?

    我想定期压缩 iOS 上的 Realm 实例以回收空间 我认为该过程是将数据库复制到临时位置 然后将其复制回来并使用新的default realm 文件 我的问题是Realm 其行为就像单例并回收对象 因此我无法真正关闭它并告诉它打开新的
  • iPad 照片选择器崩溃

    我正在使用以下函数根据 UIActionSheet 的结果激活设备相机或图像选择器 如果 fromCamera YES 那么它适用于 iPhone 和 iPad 如果 fromCamera NO 那么它可以在 iPhone 上运行并出现图像
  • React Native 初始化挂起

    我无法通过以下方式创建新的 React Native 项目react native init
  • SwiftUI 列表与右侧的部分索引?

    是否可以有一个在右侧有索引的列表 就像下面 SwiftUI 中的示例一样 我在 SwiftUI 中做了这个 Contacts swift TestCalendar Created by Christopher Riner on 9 11 2
  • 如何在IOS中的UIStackView中设置权重

    UIStackView与安卓类似LinearLayout但我不知道如何设置子视图的权重 假设我有一个垂直的UIStackView and 3 UIImageView就在里面 我想连续设置权重3 6 1UIImageViews 我怎么做 UI
  • XMPPFramework - 如何创建多用户聊天室?

    我如何使用XMPPFramework在iPhone中实现GroupChat 我尝试了以下代码 但房间没有创建 我如何知道房间是否创建 XMPPRoomDelegate没有被调用 当Stream断开连接时 调用handleDidLeaveRo
  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • React Native 弹出菜单移动选项框

    我有一个 React Native 弹出菜单 实现如下 import React Component from react import Text from react native import Icon Divider from rea
  • 将永久字符添加到 UITextField

    有没有办法将字母永久添加到 UITextField 中 用户无法删除它 我想添加一个字符 用户无法删除它 但他们仍然可以在之后添加字母 Cheers 附注这是适用于 iOS 的 A UITextField有一个名为 应该更改范围内的字符 的
  • 可能未处理的承诺拒绝(id 0)类型错误 GET 或 HEAD 请求不允许主体

    import React from react import FlatList ActivityIndicator Text View from react native export default class FetchExample
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • 使用 iPhone 中的地图视图读取当前位置名称

    我读取了当前位置的纬度和经度值 然后成功将该位置固定在 iPhone 中 现在我想使用这个纬度和经度值读取该地名 我使用以下代码来读取查找当前位置 void mapView MKMapView mapView1 didUpdateUserL
  • Parse.com 从相关 PFObject 获取 PFUser

    我正在将照片保存为 PFObject 解析 并使用 PFUser currentUser 用户 ID 作为其键之一 我想在表格视图中显示照片以及该 PFUser 的详细信息 但是当我尝试获取用户时 PFUser user self phot
  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 适用于 iPhone / iPad / iOS 的快速、精益 PDF 查看器 - 提示和提示?

    最近有很多关于绘制 PDF 的问题 是的 您可以使用UIWebView但这无法提供您所期望的优秀 PDF 查看器的性能和功能 您可以绘制PDF页面到 CALayer http www cocoabuilder com archive coc
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 哪些 Flutter 插件或功能可以利用外部 iOS/Android 显示器来显示与主显示器不同的内容

    我正在构建一个跨平台应用程序 需要在外部显示器上显示不同的视图 通常通过连接到 LCD 投影仪的 HDMI 适配器电缆连接 Flutter 是否能够在内置的外部显示器上显示不同的屏幕 在现有的 Flutter 插件中还是使用现有的 Flut
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr

随机推荐

  • 记住我系统的基础知识

    我正在使用 PHP MySQL 登录系统 我想在其中添加一个 记住我 记住我 的基本机制是什么 它是否涉及向 MySQL 中存储所有用户信息的表添加新列等 提前致谢 John There are a few different method
  • 访问 google-people API 时无法访问我的个人资料数据

    我想在我的项目中实施 Google Oauth2 我的主要目标是访问 google people API 以显示个人资料信息和 google 驱动器 因为我是新手 所以我激活了几个 API 并且大多数时候都成功获取了信息 只有 People
  • 当浏览器模式为IE9时,如何从JS中检测到IE10?

    尽管浏览器模式设置不同 但当浏览器为 IE10 时 我需要仅使用纯 JavaScript 无框架 进行检测 一些评论 我确实需要检测浏览器 它不是仅检测功能的选项 因为目的是减少浏览器错误 我尝试了常见的方法 例如 UA 字符串或功能检测
  • 当我更改数据库时,我如何知道需要删除哪些内容并将其读入 Visual Studio 中的 LinqToSql O/R 设计器?

    例如 我将表中的一列从 null 更改为 not null 然后我需要删除并重新添加该表 这部分很清楚 访问表 尤其是表中的列 的视图 函数和存储过程又如何呢 我尝试对 SQLMetal 生成的文件运行差异 取得了一些有限的成功 但即使如此
  • 为什么不能使用 Task<>.Result 属性?

    我的任务有问题 当我尝试从任务中接收返回的变量时 我无法使用 Result 属性来获取它 这是我的代码 var nextElement dir GetValue i ToString Task buffering Task
  • 如何通过 ResourceBundle 在资源属性中使用 UTF-8

    我需要在使用 Java 的资源属性中使用 UTF 8ResourceBundle 当我将文本直接输入属性文件时 它显示为 mojibake 我的应用程序在 Google App Engine 上运行 谁能给我举个例子吗 我无法完成这项工作
  • psych::principal - 旋转(主要)组件的顺序和命名的解释

    Let x是一个样本数据框 set seed 0 x lt replicate 4 rnorm 10 PCA 使用principal函数从psych包将产生 gt principal x nf 4 rotate none PC1 PC2 P
  • 如何移动 OpenLayers.Layer.Markers 图层中的标记?

    如何以编程方式移动现有标记OpenLayers Layer Markers层 我似乎找不到合适的方法 这完全受支持吗 或者我必须使用Vector layer The marker moveTo 函数对我不起作用 我有纬度 经度坐标 如果您有
  • GoogleMaps MapView 在 Android 中点击时崩溃?

    我目前正在编写一个显示 MapView 的应用程序 其中显示谷歌地图 我使用了 你好地图视图 教程http developer android com resources tutorials views hello mapview html
  • 如何在Android中询问相机的运行时权限,运行时存储权限

    我正在开发一个应用程序 只需单击按钮即可扫描条形码 并且它在 Lollipop 版本上运行良好 当我来到棉花糖时它就停止工作了 这是错误 camerabase 连接到相机 0 时发生错误 它迫使我通过以下方式打开权限 设置 gt 应用程序
  • 在 InterfaceBuilder 中调整 NavigationController 的大小

    这可能是一个愚蠢的问题 但是有没有办法调整故事板中导航控制器的大小 它只是占用了太多的屏幕空间 我的大多数视图都是大小合适的弹出窗口 但旁边有一个巨大的 iPad 大小的导航控制器 这纯粹是为了 Interface Builder 中的视觉
  • java.sql.Timestamp 时区是否特定?

    我必须将 UTC 日期时间存储在数据库中 我已将特定时区中给出的日期时间转换为 UTC 为此 我遵循了以下代码 我输入的日期时间是 20121225 10 00 00 Z 时区是 亚洲 加尔各答 我的服务器 数据库 oracle 在同一时区
  • 如何在Python字符串中包含反斜杠和引号[重复]

    这个问题在这里已经有答案了 我有一系列特殊字符 看起来像这样 specialCharList lt gt 问题是 我想包含 和 字符 但不能包含 因为它们用于字符串和转义 我该如何加入这些角色 反斜杠 字符用于转义具有特殊含义的字符 例如换
  • 违反德米特定律的搜索工具? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 有人知道我可以在 C 应用程序中使用一个工具来查找可能违反德米特法则的情况吗 我知道它会产生很多误报 但我认为它仍然有用 尤其是在早期设计过程中 如果你只是在寻找something
  • 从 Spark-Scala UDF 返回 Seq[Row]

    我正在使用 Spark 和 Scala 来进行一些数据处理 我将 XML 数据映射到数据帧 我将 Row 作为参数传递给 UDF 并尝试将两个复杂类型对象提取为列表 Spark 给我以下错误 线程 main 中的异常 java lang U
  • IBM Cloud Watson Assistant:如何获取工作区的 ID

    我使用 IBM Cloud Watson Assistant 制作了一个聊天机器人 我需要在我的 Android 应用程序中使用它 这是我的config xml code
  • 错误:supportsScrollBehavior 未声明为可配置

    我正在尝试监视一个函数supportsScrollBehavior有角的platform服务如下 import as platform from angular cdk platform describe Supporting Scroll
  • Node JS mysql 数据库断开连接

    我正在使用 Node JS 并尝试连接到 mysql 数据库 由于超时 它不断断开连接 因此我编写了一个函数 以便在超时时重新连接 尽管我需要它成为连续连接 否则我的代码中的引用将不起作用 这是我的相关代码 var mysql requir
  • 为 XmlObject 提供参数 SchemaType

    我有一个像这样的课程 public class CreditCardDocumentImpl extends org apache xmlbeans impl values XmlComplexContentImpl implements
  • React Native KeyboardAvoidingView 无法正常工作

    我正在尝试使用带有行为 padding 的KeyboardAvoidingView 当我尝试在 TextInput 中输入任何文本时 TextInput 字段不会向上移动 我最后添加了一个正在向上移动的小视图 但它上面的视图 我还有带有偏移