这听起来是 SwiftUI 中的一个错误NavigationView
,TabView
当我有一个TabView
(假设)2 个选项卡时,第一个选项卡有一个TextField
,第二个选项卡有一个NavigationView
,请按照以下步骤生成错误:
- 通过点击文本字段显示键盘。
- 按“返回”按钮隐藏键盘。
- 转到选项卡 2。
- 注意奇怪的底部在视图下方添加了空间,大约等于键盘的高度。
-注意1:如果您执行以下任何操作,则该错误将不会被复制:
- 应用程序启动后,打开选项卡 2,返回选项卡 1 并显示键盘。
NavigationView
从选项卡 2中删除- 在选项卡 1 中再显示一次键盘
注意2:
我GeometryReader
在选项卡 2 中使用黄色显示整个视图区域。
工作代码示例(只需复制粘贴即可尝试):
struct ContentView: View {
var body: some View {
TabView {
View1()
.tabItem { Text("View1") }
.tag(1)
View2()
.tabItem { Text("View2") }
.tag(2)
}
}
}
struct View1: View {
@State private var myText = ""
var body: some View {
VStack {
Text("this is view 1")
TextField("Enter Value", text: $myText)
}
}
}
struct View2: View {
var body: some View {
NavigationView {
GeometryReader { reader in
Text("this is view 2")
.onAppear{
print("view 2 on appear")
}
}
.background(Color.yellow)
}
}
}
截屏:
有没有办法解决这个问题而不必删除NavigationView
,我尝试了所有可能的解决方案,但找不到避免它的线索?