代码之家  ›  专栏  ›  技术社区  ›  cogitoergosum

Android-一个非常大的阵列的用户界面,用于自动完成

  •  0
  • cogitoergosum  · 技术社区  · 10 年前

    我想要一些关于设计符合UI(马鞍、马镫和缰绳)和UX(整体乘坐)的布局的指导。(请参见此处 horse ride analogy ).

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

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

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

    与我的偏好相反的是从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角度)是性能。如果字符串数组包含大约10000+个条目,那么应用程序会进入ANR吗?可以遵循什么规则来确定数组项的上限?

    1 回复  |  直到 4 年前
        1
  •  0
  •   Stephan Branczyk    10 年前

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

    不要过早地优化它。

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