1

我想.bottomBar在我的一个视图中放置一个工具栏。然而,当导航离开并返回时,工具栏不会与视图的其余部分平滑过渡 - 它突然出现,将视图的全部内容向上移动,如下所示。

顶部工具栏转换正确,但底部工具栏没有。

这似乎只影响屏幕底部的工具栏 - 正如您所见,放置在屏幕顶部的工具栏似乎工作正常。

导航回第一个屏幕时,如何使底部工具栏平滑过渡?

struct ContentView: View {
  var body: some View {
    NavigationView {
      NavigationLink(
        destination: Text("Destination"),
        label: {
          Text("Navigate")
        })
      .toolbar {
        ToolbarItem(placement: .bottomBar) {
          Text("Bottom")
        }
        ToolbarItem(placement: .principal) {
          Text("Top")
        }
      }
    }
  }
}
4

1 回答 1

1

我遇到了和你一样的问题,顶部工具栏很好,但底部工具栏闪烁。

我正在使用的当前解决方法是手动创建底部工具栏,例如:

struct ContentView: View {
    var body: some View {
        NavigationView {
            VStack {
                Spacer()
                NavigationLink(
                    destination: Text("Destination"),
                    label: {
                        Text("Navigate")
                    })
                Spacer()
                NavigationLink(
                    destination: Text("Destination"),
                    label: {
                        ZStack {
                            Rectangle()
                                .frame(height: 90.0)
                                .foregroundColor(.gray).opacity(0.08)
                                .border(Color.gray, width: 0.2)
                            
                            Text("Bottom")
                                .foregroundColor(.black)
                        }
                    })
            }
            .edgesIgnoringSafeArea(.all)

            .toolbar {
                ToolbarItem(placement: .principal) {
                    Text("Top")
                }
            }
        }
    }
}

演示链接(还不允许发布图片)

这并不理想 - 我更喜欢使用 Toolbar API,但这种方式确实会阻止内容向上移动。

于 2021-01-20T11:45:35.893 回答