【问题标题】:Android UI: New activity or new layout?Android UI:新活动还是新布局?
【发布时间】:2011-06-14 01:02:57
【问题描述】:

我正在为应用程序设计界面,以显示从TableLayout 中的数据库中提取的一些数据。现在,默认视图是纵向的,它由一个下拉菜单和一个三列表格组成。当用户切换到横向时,微调器及其选项可以保持不变,但我将显示一个完全不同的表格(不同的列标题和更多列)。

值得注意的是,当用户从下拉菜单中选择一个选项时,会调用数据库。从此调用中检索到的所有数据都存储在ArrayList 中,并且此ArrayList 还包含将以横向模式显示的信息。我的问题是,将景观设计创建为全新的活动会更好,还是只是将其定义为新的布局?在我看来,创建一个新活动将需要大量冗余代码,并使用户不必要地等待另一个 Web 服务调用。

这是纵向布局:

这是横向布局:

注意:纵向模式的微调器也会出现在横向布局中,忘记包含在图片中

【问题讨论】:

    标签: android layout tablelayout


    【解决方案1】:

    Android 使得为不同方向拥有单独的布局文件变得非常容易。如果您只是在项目中添加一个layout-land 文件夹并添加一个与纵向文件同名的新布局文件(但您需要不同的 UI 元素),那么操作系统本身将根据方向自动切换布局。

    您需要做的就是检查onCreate(...) 中的方向并将其保存为布尔值(例如isPortrait),然后负责更新 UI 的每个方法都可以简单地检查以确定哪些组件(表格列等)需要被填充/更新。

    【讨论】:

    • 太好了,感谢您的回复。这就是我要找的东西!
    【解决方案2】:

    我认为从纵向变为横向时进行新活动有点过分。您应该只使用 CSS3 媒体查询来更改表格的显示方式。在横向上使用浮动或清除显示更多信息。使用响应式布局原则:http://www.alistapart.com/articles/responsive-web-design/

    【讨论】:

    • 传统上 Android 不推荐新的活动来改变布局。维护明智也可能成为一场噩梦,我不推荐它。
    • 感谢您的回复。但是,我不太确定您的意思。这是一个原生 Android 应用程序,而不是移动网站。很抱歉,我很天真,但我如何在原生应用程序中使用 CSS 进行布局?
    • 抱歉,我以为这是一个网络应用程序。
    猜你喜欢
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多