如何在tablelayout中的底部按钮背景上设置文本

时间:2013-06-24 16:47:08

标签: android button text tablelayout

这就是我所拥有的:

这是布局:`

<TextView
    android:id="@+id/process_search"
    android:text="@string/home_screen" 
    style="@style/SubPageHeader"/>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bottom_round_edges"
    android:padding="1dp" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/bottom_round_edges_white_back"
        android:gravity="center_vertical">

        <TableLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:stretchColumns="1">
               <!-- android:layout_gravity="center|bottom"-->

            <TableRow>

                <Button
                        android:id="@+id/btn_home_dados_pessoais"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="center|bottom"
                        android:padding="10dip"
                        android:background="@android:color/transparent"
                        android:drawableTop="@drawable/ic_dados_pessoais_complete"
                        android:text="@string/home_dados_pessoais"
                        android:textColor="@android:color/darker_gray"
                        android:textSize="12sp"
                        android:textStyle="bold"/>

                <Button
                        android:id="@+id/btn_home_historico_pesquisas"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:padding="10dip"
                        android:background="@android:color/transparent"
                        android:drawableTop="@drawable/ic_pesquisa_complete"
                        android:text="@string/home_historico_pesquisas"
                        android:textColor="@android:color/darker_gray"
                        android:textSize="12sp"
                        android:textStyle="bold"  />
            </TableRow>

            <TableRow>

                <Button
                        android:id="@+id/btn_home_configuracoes"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:padding="10dip"
                        android:background="@android:color/transparent"
                        android:drawableTop="@drawable/ic_config_complete"
                        android:text="@string/home_configuracoes"
                        android:textColor="@android:color/darker_gray"
                        android:textSize="12sp"
                        android:textStyle="bold"/>

                <Button
                        android:id="@+id/btn_home_opcoes"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:padding="10dip"
                        android:background="@android:color/transparent"
                        android:drawableTop="@drawable/ic_android_complete"
                        android:text="template"
                        android:textColor="@android:color/darker_gray"
                        android:textSize="12sp"
                        android:textStyle="bold" />
            </TableRow>
        </TableLayout>
    </LinearLayout>
</LinearLayout>

`

我想要的是将文字放在按钮区域但在底部。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您可以使用FrameLayout。根据{{​​3}}:

  

但是,您可以将多个子项添加到FrameLayout和控件中   它们在FrameLayout中的位置,通过为每个分配重力   child,使用android:layout_gravity属性。

在您的情况下,xml将变为:

<TableRow>
<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn_home_dados_pessoais"
        android:layout_width="0dip"                       
        android:layout_gravity="center"
        android:padding="10dip"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/ic_dados_pessoais_complete" />
     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/home_dados_pessoais"
        android:textColor="@android:color/darker_gray"
        android:textSize="12sp"
        android:layout_gravity="bottom"
        android:textStyle="bold">
      <!-- The rest of the row -->
</FrameLayout>
</TableRow>

另一方面,我建议您使用按钮的样式:它们的大部分样式都是多余的。查看docs以获取示例。

答案 1 :(得分:0)

创建一个新的drawable,即你的按钮的灰色方形“背景”,并将其设置为android:background。将您的按钮可修改为仅具有透明背景的图标。只需这样就可以得到你想要的东西,一个灰色背景的按钮,底部的文字,顶部的图像。

编辑:添加了以下示例

Icon Drawable (R.drawable.btnIcon1)

icon

背景可绘制(R.drawable.btnBackground)

enter image description here

<Button
    android:id="@+id/btn_home_dados_pessoais"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center|bottom"
    android:padding="10dip"
    android:background="@drawable/btnBackground"
    android:drawableTop="@drawable/btnIcon1"
    android:text="@string/home_dados_pessoais"
    android:textColor="@android:color/darker_gray"
    android:textSize="12sp"
    android:textStyle="bold"/>