Android UI:新活动还是新布局?

时间:2011-06-13 16:41:47

标签: android layout tablelayout

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

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

这是肖像布局:

enter image description here

这是景观布局:

Note: the spinner from portrait mode will be present in the landscape layout as well, forgot to include it in the picture 注意:纵向模式中的微调器也将出现在横向布局中,忘记将其包含在图片中

2 个答案:

答案 0 :(得分:4)

Android可以非常轻松地为不同的方向设置单独的布局文件。如果您只是在项目中添加layout-land文件夹并添加一个与纵向相同名称的新布局文件(但需要使用不同的UI元素),那么操作系统本身将根据方向自动切换布局

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

答案 1 :(得分:1)

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