[英]Is it possible to position a button on top of a table layout as a layer?
我将四个按钮紧密地绑在一起以形成一个正方形,我正在努力找出如何将一个按钮放置在四个按钮的中间,以便使其基本上与它们重叠。 这是我当前的带有四个按钮的布局:
<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布局中执行这种操作吗?
嗨,可以使用FrameLayout。 这是完成的代码,其中一个按钮位于行中两个按钮之间的中央位置。 同样,您可以解决将一个按钮放置在所有四个按钮中间的位置。 这是我的操作方法:在表格行中>一个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>
我可能会缺少一些东西,但是...
如果将当前布局放在RelativeLayout
,将其与顶部,底部,左侧和右侧对齐,该怎么办。
确认没有任何更改,并且仍然可以正常使用。
然后在此RelativeLayout
内放置一个按钮,并将其对齐到此RelativeLayout
内的中心。
我没有方便的Eclipse检查它,但是它应该就是这么简单,不是吗?
即非常@durgomgiri在他的回答中说。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.