如何在 SwiftUI 列表中设置选定的行背景颜色?

Posted

技术标签:

【中文标题】如何在 SwiftUI 列表中设置选定的行背景颜色?【英文标题】:How do I set the selected row background color in a SwiftUI List? 【发布时间】:2021-11-02 01:05:53 【问题描述】:

我在 SwiftUI 中使用标准列表,并想修改所选行的背景颜色。

代码如下:

...
List 
    ForEach(recipesToShow, id: \.self)  recipe in
        NavigationLink(destination: RecipeDetailWrapper(recipe: recipe)) 
            RecipeListRow(recipe: recipe)
                .environmentObject(recipeDateFormatter)
        
    
    .onDelete(perform: deleteRecipe)
 //: LIST
.listStyle(PlainListStyle())
...

这是默认的外观:

【问题讨论】:

嗯,这是第一次。看起来我难倒了整个社区。仍然希望有人能提供一些有价值的见解。 【参考方案1】:

您可以使用修饰符 .listRowBackground(Color.blue) 来修改列表的背景颜色。

对于特定的项目,我会添加一个状态变量来存储被点击元素的 id,然后在列表的每个项目中对其进行评估,

你可以在这里查看答案:

How do you change the select color of a navigation link in a list

我认为这是你需要的。

【讨论】:

感谢您提供此信息。不幸的是,这两个选项都不起作用。当我找到解决方案时,我会回过头来。

以上是关于如何在 SwiftUI 列表中设置选定的行背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

Android在listview中设置单项背景颜色

在 NavigationView 的 SwiftUI 列表中设置雪佛龙的颜色

即使焦点在另一个控件上,如何更改列表视图选定的行背景颜色?

iOS 14,Swift UI 2 更改 NavigationLink 内选定列表项的背景颜色

在编辑页面的表格中的每一行中设置下拉列表的选定值

Angular 2 - 在下拉列表中设置选定值