2012-03-27 24 views

Trả lời

16

Giả sử contentView là quan điểm cho rằng đã được bổ sung qua window.addContentView()

((ViewGroup) contentView.getParent()).removeView(contentView); 
2

Rất tiếc, không có cách nào để xóa chế độ xem nội dung đã được thêm vào với addContentView(). Điều tốt nhất bạn có thể làm là gọi setVisibility(View.GONE) trên đó, để ẩn nó.

Đó là lý do tại sao hoạt động của onContentChanged() chỉ được gọi khi chế độ xem nội dung được đặt hoặc thêm vào hoạt động.

+1

tôi chỉ đơn giản đang làm addContentView (R.layout.test); Sau đó, để xóa cách sử dụng setVisibility này (View.GONE) – James

+1

Bạn sẽ cần lấy gốc của bố cục, sau đó ẩn nó. Ví dụ: đặt 'android: id =" @ + id/root "' và trong hoạt động gọi 'findViewById (R.id.root) .setVisibility (View.GONE);' – zrgiu

+0

Đây là câu trả lời sai. Xem câu trả lời của vince. Điều đó giải thích cách bạn có thể xóa chế độ xem đó (bạn không thể xóa quyền sở hữu đó) –

9

thử nó

View youAddedView; 
ViewGroup rootView = (ViewGroup) findViewById(android.R.id.content); 
for (int i = 0; i < rootView.getChildCount(); i++) { 
    if(rootView.getChildAt(i) == yourAddedView) { 
     // do anything here 
    } 
} 
+3

Điều duy nhất còn thiếu trong câu trả lời của bạn là rootView.removeViewAt (i); phá vỡ; –

-1

bạn có thể làm hai việc trên đây bạn có thể thiết lập khả năng hiển thị để đi vào sự kiện click của nút. HOẶC bạn có thể thiết lập các thông số bố trí với chiều rộng bố trí và chiều cao để 0dp Nó sẽ ẩn màn hình bố trí của bạn

4

Nếu bạn đã có tài liệu tham khảo để xem bạn có thể đơn giản chỉ cần làm:

ViewGroup rootView = (ViewGroup) findViewById(android.R.id.content); 
rootView.removeView(viewToRemove); 

Thay vào đó vòng lặp thông qua ViewGroup.

Các vấn đề liên quan