Bạn có thể thay thế bất kỳ chế độ xem bất cứ lúc nào.
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);
Nếu bạn không muốn thay thế Chế độ xem đã có , nhưng chọn giữa tùy chọn1 / tùy chọn 2 tại thời điểm khởi tạo, thì bạn có thể thực hiện việc này dễ dàng hơn: đặt android:id
cho bố cục chính và sau đó:
ViewGroup parent = (ViewGroup) findViewById(R.id.parent);
View C = getLayoutInflater().inflate(optionId, parent, false);
parent.addView(C, index);
Bạn sẽ phải đặt "chỉ mục" thành giá trị phù hợp tùy thuộc vào cấu trúc lượt xem. Bạn cũng có thể sử dụng ViewStub : thêm chế độ xem C của bạn dưới dạng ViewStub và sau đó:
ViewStub C = (ViewStub) findViewById(R.id.C);
C.setLayoutResource(optionId);
C.inflate();
Bằng cách đó, bạn sẽ không phải lo lắng về giá trị "chỉ mục" ở trên nếu bạn muốn cơ cấu lại bố cục XML của mình.