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

Android 横向模式下ListView或TableLayout的两列,android,listview,android-tablelayout,Android,Listview,Android Tablelayout,如何使用ListView或TableLayout在纵向模式下获得一列,在横向模式下获得两列 例如,在纵向: 要素1 要素2 要素3 要素4 在景观方面: 元素1元素2 要素3要素4 我本想在纵向模式下使用一列ListView,在横向模式下使用两列TableLayout,但在此之前,我想知道你的建议。我建议使用一个而不是一个TableLayout,因为ListView只创建足够的视图来填充屏幕,而TableLayout将创建每个资源,无论它们是否可见。这样一来,TableLayout的速度

如何使用
ListView
TableLayout
在纵向模式下获得一列,在横向模式下获得两列

例如,在纵向:

  • 要素1
  • 要素2
  • 要素3
  • 要素4
在景观方面:

  • 元素1元素2
  • 要素3要素4
我本想在纵向模式下使用一列
ListView
,在横向模式下使用两列
TableLayout
,但在此之前,我想知道你的建议。

我建议使用一个而不是一个TableLayout,因为ListView只创建足够的视图来填充屏幕,而TableLayout将创建每个资源,无论它们是否可见。这样一来,TableLayout的速度就慢了,甚至可能会使你的应用程序崩溃


您可以使用以下答案之一检查设备的方向:。如果方向为:

  • 横向,加载双视图布局
  • 纵向,加载基本的单视图布局

在ListView中加载不同的布局需要一个简单的自定义适配器。如果您以前没有编写过GridView,这里有一个方法可以帮助您。

使用GridView会很容易。您可以在运行时设置/选择列的数量,从而在portait和横向模式下以不同的方式设置它们。这样,您就只需要操作一个视图。

我想我会选择这个解决方案。我会测试它并给您反馈GridView是ListView的一个子类,所以它们非常相似。但要创建一个快速、个性化的布局,您必须编写一个定制的适配器。因此,如果一个if语句“非常困难”,那么一定要使用GridView.:)但是您仍然需要使用两个布局或使用if语句来确定方向。