我正在为应用程序设计界面,以显示从TableLayout
中的数据库中提取的一些数据。现在,默认视图是纵向方向,它包含一个下拉菜单和一个包含三列的表。当用户切换到横向时,微调器及其选择可以保持不变,但我将显示一个完全不同的表(不同的列标题和更多列)。
值得注意的是,当用户从下拉菜单中选择一个选项时,会调用数据库。从此调用中检索到的所有数据都存储在ArrayList
中,此ArrayList
还包含将以横向模式显示的信息。我的问题是,将景观设计创建为全新的活动,或者只是将其定义为新的布局会更好吗?在我看来,创建一个新活动需要大量冗余代码,并使用户不必要地等待另一个Web服务调用。
这是肖像布局:
这是景观布局:
注意:纵向模式中的微调器也将出现在横向布局中,忘记将其包含在图片中
答案 0 :(得分:4)
Android可以非常轻松地为不同的方向设置单独的布局文件。如果您只是在项目中添加layout-land
文件夹并添加一个与纵向相同名称的新布局文件(但需要使用不同的UI元素),那么操作系统本身将根据方向自动切换布局
您需要做的就是检查onCreate(...)
中的方向并将其保存为布尔值(例如isPortrait
)然后负责更新UI的每个方法都可以检查确定哪些组件(表)列等)需要填充/更新。
答案 1 :(得分:1)
我认为从纵向转换到横向时有一项新活动有点太多了。您应该只使用CSS3媒体查询来更改表的显示方式。在横向上显示更多信息,使用浮动或清除。使用响应式布局原则:http://www.alistapart.com/articles/responsive-web-design/