我有四个按钮紧紧地组成一个正方形,我正在努力弄清楚如何将按钮放在四个按钮上,在中心,所以它基本上重叠它们。这是我目前使用四个按钮的布局:
<TableRow android:layout_weight="0.2" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center"
android:layout_span="2"
android:gravity="center"
android:text="TextView"
android:textColor="#357ae8"
android:textSize="20dp"
android:textStyle="bold" />
</TableRow>
<TableRow
android:layout_gravity="center_horizontal"
android:layout_weight="1" >
<Button
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_marginBottom="-7dp"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:background="@drawable/b1tl"
android:gravity="center_horizontal" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_marginBottom="-7dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:background="@drawable/b2tr"
android:gravity="center_horizontal" />
</TableRow>
<TableRow
android:layout_margin="0dp"
android:layout_weight="1" >
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_marginLeft="5dp"
android:layout_marginTop="-7dp"
android:layout_weight="1"
android:background="@drawable/b3bl"
android:gravity="center_horizontal" />
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_marginRight="5dp"
android:layout_marginTop="-7dp"
android:layout_weight="1"
android:background="@drawable/b4br"
android:gravity="center_horizontal" />
</TableRow>
<TableRow
android:layout_margin="10dp"
android:layout_weight="0.1" >
<TextView
android:id="@+id/textView4"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="Lives"
android:textColor="#357ae8" />
<TextView
android:id="@+id/textView5"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="Score"
android:textColor="#357ae8" />
</TableRow>
<TableRow
android:layout_margin="10dp"
android:layout_weight="0.1" >
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text=""
android:textColor="#357ae8" />
<TextView
android:id="@+id/textView3"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text=""
android:textColor="#357ae8" />
</TableRow>
</TableLayout>
我以为我可能会使用相对布局并尝试对按钮进行硬编码,因此它位于按钮方块的中心,但是一旦我尝试了它就会影响表格布局。甚至可以在Android布局中执行此类操作吗?
答案 0 :(得分:3)
您好可以使用FrameLayout。这是完成的代码,其中按钮位于一行中的两个按钮之间的中央。同样,您可以解决将按钮集中放置在所有四个按钮之间的问题。我是这样做的:在表格行&gt;一个FrameLayout。在FrameLayout内部,一个LinearLayout和一个Button作为一个子项,以便它们both can overlap
(framelayout的属性)。通过这样做,我们放置在LinearLayout内部的任何内容也将与前一个按钮分层。
<小时/> 请检查此代码。我想这就是你想要的:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.2" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center"
android:layout_span="2"
android:gravity="center"
android:text="TextView"
android:textColor="#357ae8"
android:textSize="20dp"
android:textStyle="bold" />
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:layout_weight="1" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_weight="1" >
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="-7dp"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:gravity="center_horizontal" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="-7dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_weight="1" >
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="-7dp"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:gravity="center_horizontal" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="-7dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:gravity="center_horizontal" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_gravity="center"
android:text="Center Button" />
</FrameLayout>
</TableRow>
<TableRow
android:layout_margin="10dp"
android:layout_weight="0.1" >
<TextView
android:id="@+id/textView4"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="Lives"
android:textColor="#357ae8" />
<TextView
android:id="@+id/textView5"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="Score"
android:textColor="#357ae8" />
</TableRow>
<TableRow
android:layout_margin="10dp"
android:layout_weight="0.1" >
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text=""
android:textColor="#357ae8" />
<TextView
android:id="@+id/textView3"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_column="0"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text=""
android:textColor="#357ae8" />
</TableRow>
</TableLayout>
</RelativeLayout>
答案 1 :(得分:1)
我可能会遗漏一些东西,但是......
如果您将当前版面放在RelativeLayout
内,将其与顶部,底部,左侧和左侧对齐,该怎么办?右。
确认没有任何更改,它仍然可以正常工作。
然后在此RelativeLayout
内放置一个按钮,并将其对齐到RelativeLayout
内的中心位置。
我没有方便检查这个Eclipse,但应该这么简单,不应该吗?
即。 @durgomgiri在his answer中所说的非常多。