我正在尝试创建一个应用程序,其中有一排按钮,然后直接在按钮的中心下方显示文本。到目前为止,这就是我所拥有的:
<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>
但文本没有排列在按钮的中心下方。有人可以帮忙吗?
答案 0 :(得分: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>
如果我没错,这可能会解决你的问题。
答案 1 :(得分:0)
如果您正在使用Eclipse,则可以转到布局.xml的图形视图,右键单击要居中的视图,转到“布局垂直”或“水平”,然后单击“重力” - >中央。
答案 2 :(得分:0)
Drew,您应该能够将它们与2个属性居中对齐:重力和布局重力。 仅使用一个重心中心属性并不是每次都有效,但通过使用这两个属性,它应该像你一样对我来说就像魅力一样。
android:gravity="center" android:layout_gravity="center"