我想要一些关于 Android UI (in) 效率的建议。我正在尝试确定为我的应用程序构建特定布局的最佳方式,但是我认为我最初的想法可能会冒着降低性能的风险。基本上我有三个非常相似和相关的应用程序组件,要配置它们,我需要用户输入。这三个组件在全局集中共享不同的参数。我想确定一种在设备上显示此输入表单的良好、流畅的方式。
我想做的只是允许用户使用一种形式代替三种形式。所有三个组件都是相关/相似的,它们共享一些用户需要输入的配置参数。
我最初的想法如下:
- 通过 XML 为三个实例中的任何一个构建初始显示所需的 UI 元素的广泛布局。不幸的是,考虑到按行组织的参数数量,在这种情况下总共将达到大约 50 个视图对象。
- 创建活动,以便用户进入屏幕,并了解他们最初需要从屏幕顶部的 Spinner 小部件中选择三个值之一。
- 通过使用按位比较运算符,只需显示/隐藏与所选 Spinner 值相关的各种控件。(通过 Spinner 的 onItemSelectedListener() 触发)
- 创建一些次要/轻量级动画等,以便他们了解正在添加或删除拼图的各个部分以反映他们的选择。
或者,第二种理论涉及使用三个不同的活动,并在三个不同的活动之间保存状态,在它们之间传递参数......也许我应该放弃我最初的想法并使用沿着这些思路的东西?第三种选择?
这样做的主要动机不仅仅是将其分解为三种不同的形式,它应该允许用户在选择重新考虑他们的初始选择时体验到一致的 UI,并且将挫败感降到最低。使用上述方法,如果用户填写了一半的表单并决定他们想使用 Spinner 的替代选项,他们的信息显然会被保留,因为他们将使用相同的视图对象。
我想请大家就如何实现这一点提出一些建议,而不会冒着在典型的中端 Android 设备上出现太多性能下降的风险(我的意思是大多数用户拥有的手机,从 Froyo 起,尤其是那些来自姜饼的人)。我很担心,因为我只能使用一台测试设备,而且它是 HTC One X 手机,对于了解大多数普通设备如何渲染更复杂的布局,这显然是一个非常糟糕的选择。
我也很感激有关优化性能提示的任何指导...我从搜索社区和 Android 的开发人员资源中了解到,渲染某些布局对象比渲染其他对象更详尽,我应该尽可能选择 LinearLayout(而不是 RelativeLayout例如)。是否有任何确定的资源来比较 UI 选项的性能?我非常愿意为您节省时间和精力,并亲自去获取知识。
提前感谢您的时间和精力。干杯。
编辑:我想我应该提一下,如果有必要,在最初加载活动时(无论如何是第一次),几乎不需要将这些视图都绘制到屏幕上......如果需要,我最初只能加载几个视图,并且微调器小部件。默认情况下,这就像加载“未选择选项”而不是选项 1。如果设备运行缓慢,对用户的影响实际上可能很小,因为他们的设备在加载 Activity 时实际上只需要绘制少量的视图对象。在任何时候,设备可能只需要在任何时候渲染并随后显示大约 30 个视图对象。我想关键问题是,“如果他们的手机正在努力加载大量 XML,用户是否会遇到挂起或延迟,即使它”