我正在使用片段开发Android应用。在两个片段中,我使用TableLayout以编程方式创建一个由按钮组成的矩阵视图。对于应用程序的不同运行,矩阵的维度不同,但通常我有10-15行和10-15列。
我有OddsButton扩展按钮。
我想让这个视图填满不同设备的屏幕,但我无法理解什么是正确的方法。我可以(通过硬编码宽度和高度的值)影响按钮的高度和宽度(参见下面的代码),但我仍在努力将其安装到Nexus 7上。如果我首先找到合适的高度以使其适合屏幕,那么当我开始添加更多宽度时,按钮也会变得更高,并且我无法将其调整回来。
很抱歉,如果这个问题很奇怪,但我希望有人能理解这一点。我意识到我可能正在尝试完全错误的方法。
for (int k=1;k<=n2;k=k+1){
OddsButton b = new OddsButton(this.getActivity());
b.setLeg1(no);
b.setLeg2(k);
b.setO(this.getO(no,k));
b.setIndex(this.IndexForCombination(no, k));
b.setMinimumHeight(height);
b.setHeight(height);
b.setMinimumWidth(width);
b.setMinimumHeight(width);
b.setPadding(0, 0, 0, 0);
答案 0 :(得分:0)
表格布局有点棘手。请看一下示例:
<TableLayout
android:id="@+id/myId"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="*"
android:weightSum="2"
>
<TableRow >
<TextView
android:id="@+id/text1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="bla1"
/>
<TextView
android:id="@+id/text2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="bla2"
/>
</TableRow>
</TableLayout
什么是棘手的是首先设置android:stretchColumns =“*”用于布局(意味着拉伸所有列)和下一个android:layout_width =“0dp”android:layout_height =“wrap_content”android:layout_weight =“1”(don不要问我为什么会这样恶劣,我永远不会理解Android中的一些棘手的事情,但他们的工作很好。顺便说一句,weightSum只是你想要在一行中拥有的元素的权重之和。
当然你可以有更多的表格,每个表格中的元素数量应该是相同的。
(如果你喜欢这个答案,请不要忘记给予分数;))。