相对布局简单位置

发布于 2024-12-13 11:41:59 字数 3305 浏览 0 评论 0原文

好吧,我在线性布局中有一个相对布局。到目前为止,相对布局很完美,但是现在出现了一个大问题。

相对布局基于其他项目的位置。例如,按钮 2 位于按钮 1 的底部,依此类推...如果按钮 1 消失,按钮 2 就会变得...“坚果”。

这就是我的问题,当一个按钮消失时,4 个按钮之一就会...起来。 我需要的是将按钮放置在这样的位置:

按钮 1 和按钮 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);

Ok I have a relative layout inside a linear one.Until now,the relative layout was perfect,however now a big problem appeared.

A relative layout is based on the others item's position.For ex button2 is at the bottom of button1,and so on...and if button 1 disappears,button2 gets..."nuts".

That's my problem, when a button disappears one of the 4 buttons gets...up.
What I need is to position the buttons like this:

Button1 and button 2 at the middle of the screen,and 3 and 4 lower,but not really at the bottom.
I tried to modify it in relative layout but I failed...Hope you can help me.
Here's the code:

<?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>

Here's the code I use to make the button invisible:

        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);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灯角 2024-12-20 11:41:59

如果您使用的是view.setVisibility(View.GONE)..那么请尝试View.INVISIBLE
这里视图=(你的文本视图,按钮任何东西)

if you are using view.setVisibility(View.GONE)..then try View.INVISIBLE
here view = (your textview,button anything)

·深蓝 2024-12-20 11:41:59

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

    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>

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

Try to enhance your layout rules using:

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

Or try to put the buttons in Table Layout... Something like that

<?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>

I mean - like that the buttons are isolated in "cells", although you will have to play with the table's layout params to achieve correct padding between elements

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文