2011-01-12 61 views
1

我正在使用带标签界面的pandroid应用程序,并且在每个选项卡中我想以网格格式显示文本以及一些操纵数据的控件。现在我正在使用单个表格布局,但问题是要使格式与显示文本和控件一起工作。控件最终会影响文本列的宽度。这里有一个截图: http://www.pikefin.com/img/emulator.png关于表格布局的问题

我想知道是否有可能得到两个表格布局在同一个屏幕上工作? (我玩过这个,但不能得到它的工作)

或者我应该考虑采取一种完全不同的方法?

回答

1

你可能应该使用ListView来处理你的表格。这将破坏数据表和按钮之间的依赖关系。然后使用RelativeLayout在相对布局中布置按钮和ListView。

这样做的最大原因是内存消耗。如果你的表中有更多的数据比你能看到的多,那么ListView将只消耗显示可见行所需的内存。无论TableLayout是否可见,TableLayout都将消耗内存来显示全部数据量。此外,ListView会自动给你选择,所以你只需在ListView上注册一个选择监听器,就是这样。它是为你写的。你的桌面布局需要你自己写。你也可以有真实的模型支持你的用户界面,这样你就可以得到一个表示表格中某一行的特定对象。

棘手的部分是让行正确布局。为此,您必须具有固定宽度的列,您可以从现有的TableLayout中派生出固定宽度的列。这听起来像是一个限制,但是当你在移动设备上时,你通常没有太多的房地产,所以给每一列固定的金额确保每个人的布局如预期。

0

那么,对于第一个问题。您可能会发现将所有组件的宽度设置为0px是有好处的。然后将权重设置为百分比的十进制表示(例如,对于20%为0.2)。

<TextView 
    android:layout_width="0px" 
    android:layout_height="wrap_content" 
    android:layout_weight="0.2" 
    android:text="Your Text" 
/> 

至于你的第二个问题,你可以在你的布局中有任意多的TableLayouts。可能是您的其他TableLayout存在于当前的TableLayout下方。您可能需要将您的TableLayouts放在ScrollLayout系统中,以便您可以在它们之间滚动。