我目前正在开发一款与其姊妹iPhone原型相对应的Android应用程序。
我的任务是从Android中的iPhone应用程序的设计模型中重新创建屏幕,如下所示:
用于在活动中复制此屏幕的最佳布局/视图是什么?
感谢。
答案 0 :(得分:0)
这是一个很好的示例,说明如何使用自定义行视图here执行此操作。这可能是最干净的方式。
最近的内置小部件是TableLayout。请查看Hello Views教程项目,了解其实例。您可能希望将其包装在ScrollView。
中答案 1 :(得分:0)
你的问题不清楚一些事情。另外,我不同意Ted Hopp的回答。我相信他假设药物会被静态填充,或类似的东西。
根据您的应用程序的外观,我假设您将动态填充内容,可能同时使用多种药物,或根本不使用任何药物。通过iPhone模型中的箭头,我还假设您将根据所选药物执行操作。
所有这一切,我会使用ListView
。我的一般概念(我可能会使用的概念)就像这样:
您拥有数据源,并使用Loader / LoaderManager / etc。将其填入Cursor
。我将这个光标提供给CursorAdapter
(也许是SimpleCursorAdapter
,通过查看UI概念看起来可能很容易 - 不需要自定义适配器部件本身。最后,此适配器将用于ListView
。这很简单,并且不需要太多代码(ListView-SimpleCursorAdapter-Cursor的东西,数据逻辑肯定是自定义的)。
然后,您可以使用正确的ListView
听众IIRC管理每次点击。并根据所选项目采取相应行动。我猜测用户会startActivity
查看每种药物的详细信息。
然而,正如我所说,如果你有一定数量的药物(这里说有经验丰富的前白血病患者,所以我总是假设药物变化很大!),单TableLayout
会做,但我觉得事实并非如此。
啊,关于每个组件/ med的布局,正如我所说,一个简单的布局会做。可能是水平方向的LinearLayout
。同样,使用SimpleCursorAdapter
非常简单。
答案 2 :(得分:0)
正确的方法高度依赖于要求。在我看来,你有(至少)一些选择:
正如David所说,如果你有一组固定的数据,TableLayout是最合适的,但你可以通过添加子视图使其动态工作。使用TableLayout的好处主要是列的内置实现,包括基于内容的动态列大小调整。缺点是缺乏内置的动态支持,尤其是在处理大型数据集时。
ListView更适合动态和大型数据集,但具有不支持列的限制。 Ted的链接允许您模拟列,但与TableLayout不同,这些列具有固定的宽度(以父级宽度的百分比表示)。列的大小不是基于内容。你可能会尝试做一些事来衡量所有的孩子,但这很棘手。尝试处理ListView中的标题也可能有点烦人,但通过一些搜索,你会找到足够的资源来帮助你解决这个问题。
第三个选项是推送自己的AdapterView或AbsListView。当然,这涉及大量的工作,但您可以查看TableLayout的工作原理并根据内容调整列的大小。这也将使您获得适配器的支持以及随之而来的所有好处。这可能是相当多的工作,尤其是根据内容调整列的大小。
考虑您的列是否必须调整大小以适应其内容。