繁体   English   中英

SwiftUI:输入字段键盘 animation 导致选项卡视图中的其他视图动画

[英]SwiftUI : Input Field Keyboard animation causing other views in tab view to animate

与我的 TabView 内部视图中的输入字段的交互导致我的其他视图在出现时出现奇怪的动画。 此外,导航栏没有按应有的方式隐藏。

我已经确定这是一个输入字段 + TabView 问题,因为:

  • 模拟器上不会出现此问题(键盘不会向上推)。
  • 如果用户在与输入字段交互之前导航到其他选项卡视图,则不会发生这种情况。
  • 当我将选项卡视图视图的内容放在另一个视图中并导航到它时,它不会发生。

我研究了一些解决方案,但没有运气:有没有办法覆盖键盘 animation? 有没有办法在标签视图加载时强制标签视图视图“出现”? 有没有办法阻止其他 TabView 子视图受到其他 TabView 视图更改的影响

选项卡代码

        TabView (){
        ViewA()
            .tabItem {
                Image("viewa").renderingMode(.template)
                  Text("viewa")
            }

        ViewB()
            .tabItem {
                  Image("viewb").renderingMode(.template)
                    Text("viewb")
            }
        ViewC()
            .tabItem {
              Image("viewc").renderingMode(.template)
                Text("viewc")
             
            }
        ViewD()
            .tabItem {
                Image("viewd").renderingMode(.template)
                  Text("viewd")
            }

    }

在选项卡视图子视图中,animation 应用于包含我的项目的 VStack,如下所示。

VStack{
items...
}.animation(.easeInOut)

此代码用于隐藏导航:

        .background(NavigationConfigurator { nav in 
        nav.hidesBarsOnSwipe = true
    })

预期行为:

在此处输入图像描述

与输入字段交互时的行为:

在此处输入图像描述

看来这是 TabView 和键盘的持续错误。 在解决此问题之前的临时修复是将 VStacks 转换为 LazyVStacks,以便在必要时不会加载视图。

请参阅: 在 SwiftUI 中出现键盘时意外调用 OnAppear

有一个修饰符可用于修复此受支持的问题。 尝试使用这个:

.ignoresSafeArea(.keyboard)

这将防止任何东西在移动时移出键盘的安全区域。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM