一个非常大的自动完成数组的UI UX



我想要一些指导设计一个布局,迎合UI(马鞍,马镫和缰绳)和UX(整体骑乘)。(看这里骑马的比喻)。

我希望用户通过键入前几个字符来选择他们的位置。假设,这些地点都是所有国家的首都。一种观点可能会建议在选择地点时采用向下钻取的方法。例如,从一个地理位置开始(美国、洛杉矶、EMEA、APAC等),然后从该地理位置选择一个国家。

另一个建议是将所有首都城市加载到一个数组中,并将其提供给自动完成视图。

从用户体验的角度来看,我个人更喜欢后者。想要输入他/她的位置的人已经知道要选择的内容。他/她不需要导航。另一方面,考虑你的报税程序。围绕收入、储蓄或豁免性质的引导导航可以产生真正令人满意的用户体验,因为用户不会事先知道需要选择哪些税收代码或豁免代码等。

与我的偏好相反的一点是从UI的角度来看。数组的大小越大(给自动完成视图),'下拉'的大小就越大,因为前几个字符会匹配太多。这将损害用户体验。我确实看到了要显示的最大行数的选项- android:maxLines。示例如下:

<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_alignRight="@+id/editText1"
android:layout_alignTop="@+id/imageView2"
android:ems="10"
android:inputType="textAutoComplete"
android:maxLines="5"
android:text="AutoCompleteTextView" />

在自动补全视图中输入文本时,是否可以这样使用,以使布局不被吞噬?

另一个对立点——也是从UI的角度来看——是性能。对于包含大约10,000多个条目的字符串数组,应用程序会进入ANR吗?可以遵循什么规则来确定数组条目的上限?

我不会寻找规则。我只会用旧设备测试一下。

不要试图过早地优化它。

如果你确实需要优化它,你总是可以将你的数组除以26,并为字母表中的每个字母使用不同的数组。你可以一直这样分割直到你能接受这个结果。