相对布局简单的位置

时间:2011-11-03 12:48:51

标签: android xml layout button position

好的我有一个线性的相对布局。直到现在,相对布局是完美的,但现在出现了一个大问题。

相对布局基于其他项目的位置。因为前面的按钮2位于button1的底部,依此类推......如果按钮1消失,则按钮2会......“坚果”。

这是我的问题,当一个按钮消失时,4个按钮中的一个会亮起来...... 我需要的是按下这样的按钮:

屏幕中间的Button1和按钮2,下方3和4,但不是真的在底部。 我尝试在相对布局中修改它但我失败了...希望你能帮助我。 这是代码:

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
        <TextView 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:id="@+id/textView2" 
        android:text="TextView" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:layout_alignParentTop="true" 
        android:layout_alignParentLeft="true">
        </TextView>
        <Button 
        android:textSize="20dp" 
        android:layout_height="wrap_content" 
        android:id="@+id/button3" 
        android:text="Button" 
        android:layout_width="wrap_content"  
        android:layout_alignParentLeft="true" 
        android:layout_marginBottom="27dp" 
        android:layout_alignParentBottom="true">
        </Button>
        <TextView 
        android:layout_height="wrap_content" 
        android:id="@+id/textView1" 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:layout_width="wrap_content" 
        android:text="TextView" 
        android:layout_above="@+id/button1" 
        android:layout_centerHorizontal="true" 
        android:layout_marginBottom="74dp">
        </TextView>
        <Button 
        android:textSize="20dp" 
        android:layout_height="wrap_content" 
        android:id="@+id/button2" 
        android:text="Button" 
        android:layout_width="wrap_content" 
        android:layout_alignBaseline="@+id/button1" 
        android:layout_alignBottom="@+id/button1" 
        android:layout_alignParentRight="true">
        </Button>
        <Button 
        android:textSize="20dp" 
        android:layout_height="wrap_content" 
        android:id="@+id/button1" 
        android:paddingRight="30dp" 
        android:paddingBottom="90px" 
        android:text="Button" 
        android:padding="10dp" 
        android:layout_width="wrap_content" 
        android:layout_centerVertical="true" 
        android:layout_alignRight="@+id/button3">
        </Button>
        <Button 
        android:textSize="20dp" 
        android:layout_height="wrap_content" 
        android:gravity="bottom" 
        android:id="@+id/button4" 
        android:text="Button" 
        android:layout_width="wrap_content" 
        android:layout_alignBaseline="@+id/button3" 
        android:layout_alignBottom="@+id/button3" 
        android:layout_alignParentRight="true">
        </Button>
    </RelativeLayout>

这是我用来使按钮不可见的代码:

        Button b1 = (Button) findViewById(R.id.button1);
        Button b2 = (Button) findViewById(R.id.button2);
        Button b3 = (Button) findViewById(R.id.button3);
        Button b4 = (Button) findViewById(R.id.button4);
        b1.setVisibility(View.GONE);

2 个答案:

答案 0 :(得分:3)

如果您使用的是view.setVisibility(View.GONE) ..请尝试View.INVISIBLE 这里view =(你的textview,按钮什么)

答案 1 :(得分:1)

尝试使用以下方法增强布局规则:

    android:layout_toRightOf="component_id"
    android:layout_toLeftOf="component_id"
    android:layout_above="component_id"
    android:layout_below="component_id"

或者尝试将按钮放在表格布局中......就像那样

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_gravity="center"
android:padding="15dip">
<LinearLayout android:orientation="vertical"
    android:layout_height="wrap_content" android:layout_width="fill_parent"
    android:layout_gravity="center" android:paddingLeft="20dip"
    android:paddingRight="20dip">
    <TableLayout android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:layout_gravity="center"
        android:stretchColumns="*">
        <TableRow android:paddingBottom="250dip">
            <Button android:id="@+id/edt1"
            android:layout_gravity="left" 
            android:text="Button1" 
            />

            <Button android:id="@+id/edt2" 
            android:layout_gravity="right"
            android:text="Button2"
            />
        </TableRow>

        <TableRow> 
            <Button android:id="@+id/edt3"
            android:layout_gravity="left" 
            android:text="Button3"
            />
            <Button android:id="@+id/edt4"
            android:layout_gravity="right" 
            android:text="Button4"
            />
        </TableRow>

    </TableLayout>
</LinearLayout>

我的意思是 - 就像按钮在“单元格”中被隔离一样,尽管你必须使用表格的布局参数来实现元素之间的正确填充