给出以下代码:
<RelativeLayout
android:id="@+id/rel"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textPersonalInfoEmpty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginTop="20dp"
android:hint="Edit to set your personal info"
android:textSize="16sp"
android:visibility="gone" />
<EditText
android:id="@+id/editName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginTop="15dp"
android:hint="Name"
android:visibility="gone"
android:textSize="16sp" />
<Button
android:id="@+id/insertGameId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/editName"
android:layout_marginTop="20dp"
android:text="Insert" />
</RelativeLayout>
TextView和EditText根据用户交互可见,并且两者永远不会同时显示。每次一个!
问题是第三个组件(Button)需要更改属性android:layout_below,具体取决于哪个组件可见。
我需要以编程方式进行此操作。
任何帮助?
答案 0 :(得分:1)
对textview和edittext使用Relativelayout。而relativelayout的高度:wrap-content 然后给你的relativelayout提供一个id
然后将此行添加到按钮
的xml文件中<Button
android:layout_below="@id/RealtiveLayoutid" />
多数人
答案 1 :(得分:0)
首先,使用ToggleButton而不是Button。它可以包含您分配给它的所有属性。
接下来将其添加到ToggleButton:
<ToggleButton
....
android:textOn="@string/ifTextView"
android:textOff="@string/ifTextBox"
android:onClick="onToggleClicked"
/>
然后这是活动
public void onToggleClicked(View v) {
boolean on = ((ToggleButton) v).isChecked();
if(on) {
theTextView.setVisibility(View.VISIBLE);
theTextBox.setVisibility(View.INVISIBLE);
} else {
theTextBox.setVisibility(View.VISIBLE);
theTextView.setVisibility(View.INVISIBLE);
}
}
请记住导入所需的类。