如何在android中更改relativelayout的位置/视图

如何在android中更改relativelayout的位置/视图,android,android-relativelayout,Android,Android Relativelayout,我有一个布局,其中有3个RelativeLayouts,如下所示 相对论1 ->其他小部件和开关 相对论2 ->2ImageButtons垂直放置 相对论3 ->2按钮s垂直放置 默认情况下,开关的状态为关闭状态 我想要的是 当开关处于关闭状态时,应放置相对位置3或重叠相对位置2,即第三个布局应出现在位置2 当开关启用时(即处于接通状态),Relativelayout2应可见,Relativelayout3应位于其下方 下面是我的布局 <RelativeLayout xmlns:an

我有一个布局,其中有3个
RelativeLayout
s,如下所示

  • 相对论1 ->其他小部件和
    开关
  • 相对论2 ->2
    ImageButton
    s垂直放置
  • 相对论3 ->2
    按钮
    s垂直放置
默认情况下,
开关的状态为关闭状态

我想要的是

  • 开关
    处于关闭状态时,应放置相对位置3或重叠相对位置2,即第三个布局应出现在位置2
  • 开关
    启用时(即处于接通状态),Relativelayout2应可见,Relativelayout3应位于其下方
  • 下面是我的布局

    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bckgrnd_4">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Task Name"
            android:id="@+id/textView5"
            android:layout_alignBottom="@+id/editText"
            android:layout_alignStart="@+id/textView6" />
    
        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/editText"
            android:hint="@string/hint_name"
            android:layout_marginTop="37dp"
            android:layout_alignParentTop="true"
            android:layout_toEndOf="@+id/textView7" />
    
         <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Set"
            android:id="@+id/button5"
            style="@style/btnStyleBeige"
            android:layout_marginTop="37dp"
            android:layout_below="@+id/textView5"
            android:layout_alignStart="@+id/switch1" />
    
       <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Set Location"
            android:id="@+id/textView6"
            android:layout_alignBottom="@+id/button5"
            android:layout_toStartOf="@+id/editText" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Always alert me"
            android:id="@+id/textView7"
            android:layout_centerVertical="true"
            android:layout_alignParentStart="true" />
    
        <Switch
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/btnStyleBeige"
            android:id="@+id/switch1"
            android:layout_alignTop="@+id/textView7"
            android:layout_alignEnd="@+id/editText" />
    
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/relative2"
            android:layout_marginTop="37dp"
            android:layout_below="@+id/switch1"
            android:layout_alignParentStart="true">
    
            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/imageButton3"
                android:src="@drawable/cal"
                style="@style/btnStyleBeige"
                android:layout_marginStart="42dp"
                android:layout_alignParentTop="true"
                android:layout_alignParentStart="true" />
    
            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/imageButton4"
                style="@style/btnStyleBeige"
                android:src="@drawable/alert"
                android:layout_marginStart="67dp"
                android:layout_alignBottom="@+id/imageButton3"
                android:layout_toEndOf="@+id/imageButton3" />
    
        </RelativeLayout>
    
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/relative3"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true">
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Add Task"
                style="@style/btnStyleBeige"
                android:id="@+id/button6" />
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Cancel"
                style="@style/btnStyleBeige"
                android:layout_alignParentTop="true"
                android:layout_toEndOf="@+id/button6"
                android:layout_marginStart="37dp" />
    
        </RelativeLayout>
    
    </RelativeLayout>
    
    
    

    请帮助我…

    您可以为
    开关设置侦听器,并根据
    开关是打开还是关闭来切换布局的可见性。比如说,

        Switch s = (Switch) findViewById(R.id.switch1);
    
        s.setOnCheckedChangedListener (this);
    
        ...
    }
    
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    
        RelativeLayout relative2 = (RelativeLayout) findViewById(R.id.relative2);
        relative2.setVisibility(isChecked ? View.GONE:View.VISIBLE);
    
    }