我正在使用带有选项卡式界面的andorid应用程序,并且在每个选项卡中我想以网格格式显示文本以及一些用于操作数据的控件。现在我正在使用单个表格布局,但问题是如何使用格式化来显示文本和控件。控件最终会影响文本列的宽度。这是一个截图: http://www.pikefin.com/img/emulator.png
我想知道是否有可能让两个表格布局在同一个屏幕上工作? (我玩了一些但是无法让它起作用)
或者我应该考虑采用完全不同的方法?
答案 0 :(得分:1)
您可能应该使用ListView作为表的数据。这将打破您在数据表和按钮之间的依赖关系。然后使用RelativeLayout在该相对布局中布局按钮和ListView。
这样做的最大原因是内存消耗。如果表中的数据多于您可以看到的数据,则ListView将仅消耗显示可见行所需的内存。 TableLayout将消耗内存以显示整个数据量,无论它是否可见。此外,ListView会自动为您提供选择,因此您只需在ListView上注册选择侦听器就可以了。它是为你而写的。您的tablelayout将要求您自己编写。此外,您可以使用真实模型支持UI,以便获得表示表中行的特定Object。
棘手的部分是让行正确布局。为此,您必须拥有可从现有TableLayout派生的固定宽度列。这听起来像是一个限制,但是在移动设备上你通常没有很多房地产,所以给每一列固定的数量确保每个人的布局都符合预期。
答案 1 :(得分:0)
嗯,对于第一个问题。您可能会发现将所有组件的宽度设置为0px是有益的。然后将权重设置为百分比的十进制表示(例如,0.2为20%)。
<TextView
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:text="Your Text"
/>
至于你的第二个问题,你可以在你的布局中拥有尽可能多的TableLayouts。可能是您的其他TableLayout存在于当前TableLayout之下。您可能需要将您的TableLayouts包含在ScrollLayout系统中,以便您可以在它们之间滚动。