SwiftUI tvOS LazyVGrid焦点导航问题:无正下方项目时无法下移
SwiftUI tvOS LazyVGrid 焦点跳转异常问题
开发SwiftUI tvOS应用时,采用设置为.adaptive(minimum: 300)的LazyVGrid布局,多数场景下焦点行为正常,但存在以下问题:
- 当某个项目(如item-9)没有正下方项目时,向下移动焦点会出现卡顿
- 当前焦点在item-9(红色高亮),预期向下滑动时焦点应跳转至最近的下方可用项目item-12,但实际焦点停留在item-9,无法下移

当前代码实现
主视图代码
struct AdaptiveLazyHGridView: View { let items = Array(1...22) var adaptiveColumns = [GridItem(.adaptive(minimum: 300.0), spacing: 10)] var body: some View { VStack{ ScrollView(.vertical) { LazyVGrid(columns: adaptiveColumns) { ForEach(0 ..< 13) { item in Button(action: { }) { ZStack{ FocusableRectangle() Text("item - \(item)") } }.buttonStyle(CardButtonStyle()) } }.padding(40) } } } }
焦点可响应矩形视图代码
struct FocusableRectangle: View { @Environment(\.isFocused) var isFocused: Bool @State var color = Color.blue var body: some View { Rectangle() .fill(color) .frame(width: 300.0, height: 200.0) .onChange(of: isFocused) { color = isFocused ? Color.red : Color.blue } } }
内容的提问来源于stack exchange,提问作者Shabnam Siddiqui
相关产品推荐
相关产品推荐

