0

我正在尝试创建一个应用程序,其中有一排按钮,然后在按钮中心正下方显示文本。到目前为止,这就是我所拥有的:

<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/blue"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/red" android:layout_gravity="center"/>

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/green" android:layout_gravity="right"/>

</FrameLayout>

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="2.5dip"                       
        android:layout_marginLeft="7.5dip"
        android:text="@string/button1"
        android:gravity="center" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="2.5dip"
        android:text="@string/button2" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true" 
        android:layout_marginTop="2.5dip"           
        android:layout_marginRight="5dip"
        android:text="@string/button3" />

</RelativeLayout>

但文本没有在按钮的中心下方排列。有人可以帮忙吗?

4

3 回答 3

0

Drew, you should be able to center align them with 2 properties: Gravity and Layout Gravity. Using just one gravity center property does not work everytime, but by using these two, it should work like a charm for you just like it did for me.

android:gravity="center" android:layout_gravity="center"
于 2012-04-28T18:12:46.617 回答
0

首先,在 FrameLayout 中使用多个子元素从来都不是一件好事。如果可以的话,你应该使用 LinearLayout。如果您希望按钮填充屏幕宽度的三分之一,您可以使用

<LinearLayout 
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:weightsum="3" >

     <Button
       android:id="@+id/button1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/blue"
       android:weight="1"/>

     <Button
       android:id="@+id/button2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/red"
       android:weight="1"/>

     <Button
       android:id="@+id/button3"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/green"
       android:weight="1"/>
</LinearLayout>

然后对于TextViews,你可以再次使用LinearLayout,但是改变方向;

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:orientation="vertical" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="2.5dip"                       
    android:layout_marginLeft="7.5dip"
    android:text="@string/button1"
    android:layout_gravity="center" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="2.5dip"
    android:text="@string/button2"
    android:layout_gravity="center" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true" 
    android:layout_marginTop="2.5dip"           
    android:layout_marginRight="5dip"
    android:text="@string/button3"
    android:layout_gravity="center" />

</LinearLayout>

如果我没记错的话,这可能会解决你的问题。

于 2012-04-28T16:12:01.447 回答
0

如果您使用的是 Eclipse,您可以转到布局 .xml 的图形视图,右键单击要居中的视图,转到垂直或水平布局,然后单击重力 -> 居中。

于 2012-04-28T16:51:35.590 回答