0

我正在使用片段开发一个 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);
4

1 回答 1

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" (不要问我为什么会这样,我永远不会理解 Android 中的一些棘手的事情,但它们很好用)。顺便说一句,weightSum 只是您希望在一行中拥有的元素的权重之和。

当然你可以有更多的表格行,只是每个表格中的元素数量应该相同。

(PS如果您喜欢答案,请不要忘记给分;))。

于 2013-11-14T21:40:56.400 回答