繁体   English   中英

NavigationLink 不适用于 SwiftUI 列表中的 ScrollView

[英]NavigationLink doesn't work with ScrollView inside a List in SwiftUI

我正在尝试在列表中实现滚动视图的水平滚动。 哪个工作正常。

但是,如果我将 NavigationLink 添加到每个 ScrollView 元素,则 NavigationView 似乎无法完成他的任务。

我已经添加了我的代码。 请看看,让我知道,我错过了什么。

struct MovieHomeView: View {
    @ObservedObject var moviesDataSource: MoviesHomeViewModel = MoviesHomeViewModel()

    var body: some View {
        NavigationView {
            VStack {
                HeaderView()
                    .frame(height: 50.0)

                List {
                    MovieCategoryCell(category: "Now Playing", movies: moviesDataSource.nowPlayingMovies)
                    MovieCategoryCell(category: "Popular", movies: moviesDataSource.popularMovies)
                }
                .padding(.horizontal, -20)
            }
            .navigationBarTitle("Movies App")
            .navigationBarHidden(true)
        }
    }
}
struct MovieCategoryCell: View {
    var category: String
    var movies:  [MovieBaseProtocol]

    init(category: String, movies: [MovieBaseProtocol]) {
        self.category = category
        self.movies = movies
    }

    var body: some View {
        VStack(alignment: .leading) {
            Text(category)
                .font(.title)
            ScrollView(.horizontal, showsIndicators: false) {
                HStack {
                    ForEach(self.movies, id: \.id) { movie in
                        NavigationLink(destination: MovieUIView(movie: movie)) {
                            MovieCard(movie: movie)
                        }
                    }
                }
            }
            .frame(height: 280)
        }
        .padding(.horizontal, 20)
    }
}

我用 Text("1") 替换了视图,发现一切都很好。 因此,您的任何一个/两个观点都一定有问题。

    ForEach(self.movies, id: \.id) { movie in
                    NavigationLink(destination: Text("1")){// MovieUIView(movie: movie)) {
                     Text("1") //   MovieCard(movie: movie)
                    }
                }

暂无
暂无

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

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