如果将List
与其他视图一起放置在VStack
中,并用TabView
定义了PageTabViewStyle
中的一页,则与{其他视图会导致List
的所有(可见)行都突出显示。
以下视图演示了此行为:点击或长按按钮或紫色区域(Color
视图)将使列表中的行突出显示(Xcode 12.1
和iOS 14.1
)。
struct ContentView: View {
var body: some View {
TabView {
VStack {
List {
Text("Row 0")
Text("Row 1")
Text("Row 2")
}
.listStyle(InsetGroupedListStyle())
Spacer()
Button(action: { print("tapped")}, label: { Text("Button") } )
.padding(.vertical, 80)
Spacer()
Color.purple
}
Text("Second Page")
}
.tabViewStyle(PageTabViewStyle())
}
}
我认为这是一个错误,并且已经提交了反馈,但是想知道是否有一种解决方法,但是它没有固定。
答案 0 :(得分:0)
想知道是否有一种解决方法,但它不是固定的。
经过一些调查和测试,我看到的唯一解决方法是改为使用滚动视图
TabView {
VStack {
ScrollView { // << here
Text("Row 0")
Text("Row 1")
Text("Row 2")
}
注意:当然,可能需要在滚动视图中进行一些手动格式化和布局,但是没有此类错误。