0

好的,所以我目前正在使用 TableLayout 为一个活动进行布局,并将该死的表放在我想要的地方并不能很好地工作。

这是它现在的截图: 在此处输入图像描述

我现在有三个目标:

  1. 让包含 EditText 和 ToggleButton 的 LinearLayout 在屏幕中水平居中(还不能这样做)

  2. 让表格布局(上面有 6 个带有触发 ftns 的按钮)在 LL 下方水平居中,而不会将其分成 3 个线性布局

  3. 除了边距和填充之外,在不使用绝对值的情况下使所有按钮都具有相同的大小。

任何了解我将如何实现上述任何或所有目标的任何见解都将不胜感激,因为我基本上已经用尽了自己的 xml 布局知识,并且宁愿避免以编程方式进行,我通常在这种情况下会这样做。

作为参考,这是上面看到的当前布局的 xml(xml 版本行在那里,但它只是不想在这篇文章中复制权利):

<com.hinodesoftworks.lordkat.widgets.TitleBar
    android:id="@+id/calc_titlebar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<TextView
    android:id="@+id/calc_input_label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal" >

    <EditText
        android:id="@+id/calc_input"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/txt_trig_hint" />

    <ToggleButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:background="@drawable/button_selector"
        android:paddingBottom="5dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="5dp"
        android:textOff="@string/txt_trig_toggle_radians"
        android:textOn="@string/txt_trig_toggle_degrees" />
</LinearLayout>

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:weightSum="3" >

    <TableRow
        android:layout_gravity="center_horizontal"
        android:layout_weight="1" >

        <Button
            android:id="@+id/trig_sine_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="2dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="2dp"
            android:background="@drawable/button_selector"
            android:paddingBottom="10dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:paddingTop="10dp"
            android:text="@string/txt_trig_sine_button" />

        <Button
            android:id="@+id/trig_secant_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="2dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="2dp"
            android:background="@drawable/button_selector"
            android:paddingBottom="10dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:paddingTop="10dp"
            android:text="@string/txt_trig_secant_button" />
    </TableRow>

    <TableRow
        android:layout_gravity="center_horizontal"
        android:layout_weight="1" >

        <Button
            android:id="@+id/trig_cosine_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="2dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="2dp"
            android:background="@drawable/button_selector"
            android:paddingBottom="10dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:paddingTop="10dp"
            android:text="@string/txt_trig_cosine_button" />

        <Button
            android:id="@+id/trig_cosecant_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="2dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="2dp"
            android:background="@drawable/button_selector"
            android:paddingBottom="10dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:paddingTop="10dp"
            android:text="@string/txt_trig_cosecant_button" />
    </TableRow>

    <TableRow
        android:layout_gravity="center_horizontal"
        android:layout_weight="1" >

        <Button
            android:id="@+id/trig_tangent_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="2dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="2dp"
            android:background="@drawable/button_selector"
            android:paddingBottom="10dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:paddingTop="10dp"
            android:text="@string/txt_trig_tangent_button" />

        <Button
            android:id="@+id/trig_cotangent_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="2dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="2dp"
            android:background="@drawable/button_selector"
            android:paddingBottom="10dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:paddingTop="10dp"
            android:text="@string/txt_trig_cotangent_button" />
    </TableRow>
</TableLayout>

<TextView
    android:id="@+id/calc_results_label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/txt_trig_results_label" />

<TextView
    android:id="@+id/calc_results"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="123.456" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

4

2 回答 2

1

1-) 要让 EditText 和 ToggleButton 在屏幕中水平居中,请使用 android:gravity="center_horizo​​ntal"
而不是 "android:layout_gravity="center_horizo​​ntal"

2-) 如答案(1),为了使表格水平居中,使用“android:gravity="center_horizo​​ntal"

3-) 要使按钮大小相同而不使用除边距和填充之外的绝对值,请使用 "android:stretchColumns="0,1"" 拉伸列 0 和 1。使用此属性时,您可以不必使用绝对值。所以生成的代码如下:

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:stretchColumns="0,1"
   >

<TableRow>
    <Button
        android:id="@+id/trig_sine_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_launcher"
        android:text="txt_trig_sine_button" />
    <Button
        android:id="@+id/trig_secant_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_launcher"
        android:text="txt_trig_secant_button" />
</TableRow>

……

于 2012-05-27T18:47:11.463 回答
0

尝试使用 GridLayout,它的内存效率更高,没有嵌套容器,非常适合这种类似网格的设计。

于 2013-06-01T23:52:29.470 回答