Вы можете попробовать хитрый обходной путь, используя View.setVisibility()
. Начните с res / layout / main.xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/switcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Switch"
android:onClick="switchButtons" />
<Button
android:id="@+id/buttonA1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button A" />
<Button
android:id="@+id/buttonB1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button B" />
<Button
android:id="@+id/buttonB2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button B"
android:visibility="gone" />
<Button
android:id="@+id/buttonA2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button A"
android:visibility="gone" />
</LinearLayout>
И теперь у нас есть Activity
для размещения этого макета:
public class Foo extends Activity {
Button switcher;
Button A1;
Button A2;
Button B1;
Button B2;
boolean buttons1AreVisible = true;
protected void onCreate(Bundle allthethings) {
super.onCreate(allthethings);
setContentView(R.layout.main);
switcher = findViewById(R.id.switcher);
A1 = findViewById(R.id.buttonA1);
A2 = findViewById(R.id.buttonA2);
B1 = findViewById(R.id.buttonB1);
B2 = findViewById(R.id.buttonB2);
}
private void switchButtons() {
if (buttons1AreVisible) {
A1.setVisibility(View.GONE);
B1.setVisibility(View.GONE);
B2.setVisibility(View.VISIBLE);
A2.setVisibility(View.VISIBLE);
} else {
A1.setVisibility(View.VISIBLE);
B1.setVisibility(View.VISIBLE);
B2.setVisibility(View.GONE);
A2.setVisibility(View.GONE);
}
buttons1AreVisible = !buttons1AreVisible;
}
}
Осталось только назначить onClick()
методы четырем кнопкам.