这应该很简单,但我真的卡住了。 所以这是我的布局:
__________________________
| layout |
|[Button A ] [ Button B ]|
|________________________|
然后当你制作Button A Visibility.GONE时我需要这个:
__________________________
| layout |
|[ Button B ]|
|________________________|
或按钮B Visibility.GONE:
__________________________
| layout |
|[ Button A ]|
|________________________|
我尝试了一切。任何类型的布局都可以,它不必是相对的或线性的或任何东西。
提前致谢。
答案 0 :(得分:3)
因此,使用“线性布局”将每个视图的权重设置为1,方向水平。不要设置weightSum
!
您可以将可见性设置为xml或myView.setVisibility(View.GONE);
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="de.project.amy.amyatanim.DataFragment">
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="New Button 1" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="New Button 2" />
</LinearLayout>
使用RelativeLayout有点棘手。在这里,您必须将空间和button4可见性设置为已消失,并且还要设置按钮5的宽度以匹配父级,所有这些都是以编程方式进行的,但并非不可能。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button4"
android:id="@+id/button4"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@+id/space"/>
<View
android:id="@+id/space"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="New Button5"
android:id="@+id/button5"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@+id/space"/>
</RelativeLayout>