Anda dapat mengganti tampilan kapan saja.
int optionId = someExpression ? R.layout.option1 : R.layout.option2;
View C = findViewById(R.id.C);
ViewGroup parent = (ViewGroup) C.getParent();
int index = parent.indexOfChild(C);
parent.removeView(C);
C = getLayoutInflater().inflate(optionId, parent, false);
parent.addView(C, index);
Jika Anda tidak ingin mengganti View yang sudah ada , tetapi pilih antara option1 / option2 pada waktu inisialisasi, maka Anda bisa melakukan ini dengan lebih mudah: atur android:idtata letak induk lalu:
ViewGroup parent = (ViewGroup) findViewById(R.id.parent);
View C = getLayoutInflater().inflate(optionId, parent, false);
parent.addView(C, index);
Anda harus mengatur "indeks" ke nilai yang tepat tergantung pada struktur tampilan. Anda juga bisa menggunakan ViewStub : tambahkan tampilan C Anda sebagai ViewStub dan kemudian:
ViewStub C = (ViewStub) findViewById(R.id.C);
C.setLayoutResource(optionId);
C.inflate();
Dengan begitu Anda tidak perlu khawatir tentang nilai "indeks" di atas jika Anda ingin merestrukturisasi tata letak XML Anda.