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