SwiftUI:如果在TabView内与其他视图进行交互,则列表行会突出显示

问题描述

如果将List与其他视图一起放置在vstack中,并用TabView定义了PageTabViewStyle中的一页,则与{其他视图会导致List的所有(可见)行都突出显示

以下视图演示了此行为:点击或长按按钮或紫色区域(Color视图)将使列表中的行突出显示Xcode 12.1iOS 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())
    }
}

我认为这是一个错误,并且已经提交了反馈,但是想知道是否有一种解决方法,但是它没有固定。

解决方法

想知道是否有一种解决方法,但它不是固定的。

经过一些调查和测试,我看到的唯一解决方法是改为使用滚动视图

    TabView {
        VStack {
            ScrollView {        // << here
                Text("Row 0")
                Text("Row 1")
                Text("Row 2")
            }

注意:当然,可能需要在滚动视图中进行一些手动格式化和布局,但是没有此类错误。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...