在列表/网格中使用键盘搜索 - 算法

Posted

技术标签:

【中文标题】在列表/网格中使用键盘搜索 - 算法【英文标题】:Search by using the keyboard in a list/grid - algorithm 【发布时间】:2009-11-10 21:26:35 【问题描述】:

我需要在网格中实现自定义搜索,我想找到一些用户界面指南来解释实现它的标准方法。

我的意思是这种由用户使用键盘发起的搜索。网格上的焦点必须移动到与按下的键匹配的第一行。

我想找一个好的算法来做。

谢谢。

【问题讨论】:

【参考方案1】:

没有标准的方法,许多网格/列表以不同的方式实现这一点,这让我发疯。一些只搜索第一个字母,一些搜索多个字母而不指出哪些字母,另一些显示一个(非模态)窗口,显示它当前正在使用哪些字母,另一些隐藏此缓冲区并使用超时重置,其他不'根本不重置或使用 esc 之类的(隐藏)键。

从您表达问题的方式来看,这听起来像是一个简单的“跳转到以按下的字符开头的第一行”——这是最简单的用例,我看不出这种情况下的“算法”应该做什么.

如果您想模仿某个特定的应用程序,我认为您应该提供对其行为的详细描述。虽然我觉得做了这样的描述之后,算法就小菜一碟了。

【讨论】:

我的第一个意图是找到一些正式的东西......一些要遵循的准则。我没有找到任何东西,所以现在我正在尝试模仿 Windows 资源管理器中使用的算法。我已经实现了一些我认为它的工作原理非常相似的东西,但由于我没有任何算法或指南,我不能 100% 确定我没有错过任何东西。

以上是关于在列表/网格中使用键盘搜索 - 算法的主要内容,如果未能解决你的问题,请参考以下文章

Lesson 9.3 集成算法的参数空间与网格优化和使用网格搜索在随机森林上进行调参

“在字符矩阵中搜索词/字符串”算法的复杂性

网格搜索适合不接受张量列表

Flutter TextField在键盘上溢出底部

地理网格搜索算法

在 python 中使用 in 运算符搜索列表时使用啥算法?