用搜索栏过滤长列表非常慢

Posted

技术标签:

【中文标题】用搜索栏过滤长列表非常慢【英文标题】:Filtering a long list with search bar is very slow 【发布时间】:2020-10-04 15:57:00 【问题描述】:

我有一个最多包含 100 个项目的列表。在使用搜索栏过滤列表时,每个字母都需要一些时间。 如何加快搜索速度? 一种可能的解决方案是仅在单击键盘上的搜索按钮后进行过滤。

        
     
            VStack 
                SearchBar(text: $searchTerm, placeholder: "Suche")
            
            
         
                List 
                    
                    ForEach(gesetzestextTEMPO.filter 
                        self.searchTerm.isEmpty ? true : $0.titel1.localizedCaseInsensitiveContains(searchTerm)
                            || $0.titel1.localizedCaseInsensitiveContains(searchTerm)
                            || $0.artikel.localizedCaseInsensitiveContains(searchTerm)
                            || $0.marginale.localizedCaseInsensitiveContains(searchTerm)
                            || $0.absatz0.localizedCaseInsensitiveContains(searchTerm)
                            || $0.absatz0litaz.localizedCaseInsensitiveContains(searchTerm)
                          
                        
                        )
                     item in
                        Part13(gesetzestextTEMPO: item, searchTerm: self.$searchTerm)
                    
                ```

【问题讨论】:

【参考方案1】:

尝试以下方法:

List 
    // ...

.id(UUID())

这里建议:How to fix slow List updates in SwiftUI

【讨论】:

以上是关于用搜索栏过滤长列表非常慢的主要内容,如果未能解决你的问题,请参考以下文章

除非我在搜索栏中点击,否则 SearchController 不会显示未过滤的结果

EasyUI combobox下拉列表实现搜索过滤(模糊匹配)

ionic 2中多个选项卡中的单个搜索栏过滤项目

如何有效地过滤 SwiftUI 中的长列表?

过滤的列表项打开原始列表项的活动

如何在 Oracle Apex 中过滤给定单词的穿梭列表?