繁体   English   中英

是否可以将按钮作为图层放置在表格布局的顶部?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM