问题标签 [keyboard-avoidance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
87 浏览

ios - SwiftUI 禁用自定义标签栏控件的键盘避免

我制作了一个自定义标签栏,因为系统不能在纯 swiftUI 中自定义。

自定义选项卡视图如下所示:

当我在其中一个 TabXViews 中使用 textfied 时,底部的 HStack 保持在键盘上方。

我发现的一个解决方案是禁用标签栏的键盘避免功能。我通过取消注释上面的行来做到这一点.ignoresSafeArea(.keyboard)(第一次尝试)

但是,当然,这适用于全局,对于每个子视图 => 如果我声明一个滚动视图,则在打开键盘时将无法访问底部。

.ignoresSafeArea(.keyboard)尝试在上面的 HStack 下设置(第二次尝试),但这没有做任何事情(HStack 停留在键盘上方)

是否有解决方案可以在子视图中再次选择避免键盘?

0 投票
0 回答
73 浏览

ios - 当键盘出现时,有什么方法可以修改 SwiftUI List 的 contentOffset 吗?

我在一个使用列表的 SwiftUI 项目中有一个聊天应用程序。我不想使用 ScrollView/LazyVStack。

当键盘出现并且列表已经滚动到底部时,我在向上移动内容时遇到问题。键盘只覆盖内容,直到用户向上滚动。在 swiftUI 之前,我将通过监听键盘更改并设置 tableView.contentOffset 以匹配键盘显示来实现这一点。

有没有使用 SwiftUI 列表做类似的事情?除了反转列表之外,我无论如何都找不到在键盘显示时平滑地向上移动内容。目前我只是在听keyboardDidShow并在键盘显示后使用scrollView代理滚动列表但有延迟并且不流畅:

我还尝试观察键盘高度并使用键盘高度向列表添加填充,但这也不起作用。

0 投票
0 回答
52 浏览

react-native - 键盘避免多个文本输入

我正在使用带有多个文本输入的 KeyboardAvoidingView,在 android 中我通过添加android:windowSoftInputMode="adjustResize"到我的 AndroidManifest 来解决这个问题,在 ios 上有什么想法/解决方案吗?

屏幕录像链接

0 投票
0 回答
105 浏览

swiftui - SwiftUI,iOS 14,Form{ TextEditor() } 中的键盘避免

我在一个简单的Form{}. 自动键盘回避不起作用。下面是一个带有TextEditor(). 运行时,键盘位于输入字段的顶部,要求用户滚动视图以便输入位置。删除Form{}和自动键盘避免作品。我是否遗漏了我需要在 Form{} 中执行的操作才能获得此行为?

0 投票
0 回答
10 浏览

react-native - 当键盘已经打开并且 render() 更新以显示 KeyboardAvoidingView (以前没有显示)时,它不会避开键盘

所以我有一个餐厅列表,顶部和下方都有一个过滤器,餐厅会在您键入时更新以匹配您的过滤器。当您的过滤器未返回任何内容时,视图随即更改为显示“未找到餐厅,请更改您的过滤器”类型消息。我将其设置为 KeyboardAvoidingView,因为我希望它垂直居中,当您打开键盘时,它仅位于其上方,看起来不太好。然而,当视图处于活动状态时,它被向上推了一点,并以可见的东西为中心。

我的问题是,一旦过滤器的使用足以隐藏所有餐馆,KAV 就会显示在渲染函数中,但无法识别键盘已打开并且需要移动。如果我到了那个阶段然后关闭/重新打开键盘它就可以工作,但这远非理想。

我已经检查了这个线程并尝试了在那里找到的解决方案:KeyboardAvoidingView - 隐藏键盘时重置高度,但不幸的是这对我不起作用。

这个线程似乎和我有同样的问题:对已经打开的键盘做出反应的本机 KeyboardAvoidingView 不能正常工作,但解决方案是隐藏键盘,这是我不想要的。我希望他们使用已经打开的键盘立即更正输入并减少过滤器。

有没有办法在键盘已经打开后引入 KAV 并让它对已经打开的键盘做出反应?

0 投票
0 回答
41 浏览

c++ - 在移动构造函数中避免成员移动样板?

有时您仍然想要默认的移动构造函数行为(按成员移动),但也想要修改移动的对象。以下面的场景为例

这可能是一个愚蠢的问题,但有没有办法避免为每个成员编写移动?