是否可以将表格布局顶部的按钮定位为图层?

时间:2013-05-11 10:08:28

标签: android android-layout

我有四个按钮紧紧地组成一个正方形,我正在努力弄清楚如何将按钮放在四个按钮上,在中心,所以它基本上重叠它们。这是我目前使用四个按钮的布局:

<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布局中执行此类操作吗?

2 个答案:

答案 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中所说的非常多。