在横向模式下ListView或TableLayout的两列

时间:2013-02-08 22:30:41

标签: android listview android-tablelayout

如何以纵向模式获取一列,使用ListViewTableLayout以横向模式获得两列。

例如,在肖像:

  • 元素1
  • 元素2
  • 元素3
  • 元素4

在景观中:

  • Element1 Element2
  • Element3 Element4

我想在纵向模式下使用ListView一列,在横向模式下使用TableLayout两列,但在此之前,我想知道您的建议。

2 个答案:

答案 0 :(得分:1)

我建议使用ListView而不是TableLayout,因为ListView只会创建足够的视图来填充屏幕,而TableLayout将创建每个资源,无论它们是否可见。通过这种方式,TableLayout较慢,甚至可能导致应用程序崩溃。


您可以使用以下其中一个答案检查设备的方向:Check orientation on Android phone。然后,如果方向是:

  • landscape,加载双视图布局。
  • 纵向,加载基本的单一视图布局。

在ListView中加载不同的布局需要一个简单的自定义适配器。如果您之前没有写过,可以使用tutorial来帮助您。

答案 1 :(得分:1)

使用GridView很容易。您可以在运行时设置/选择列数,因此在portait vs landscape模式下设置它们的方式不同。这样,你只需要操纵一个视图。