2012-03-27 6 views

Antwort

16

contentView Unter der Annahme, ist die Ansicht, dass über window.addContentView()

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

Leider gibt es keine Möglichkeit, eine Inhaltsansicht zu entfernen, die mit addContentView() hinzugefügt wurde. Das Beste, was Sie tun können, ist, setVisibility(View.GONE) darauf zu nennen, um es zu verstecken.

Aus diesem Grund wird die Aktivität onContentChanged() nur aufgerufen, wenn die Inhaltsansicht festgelegt oder einer Aktivität hinzugefügt wird.

+1

hinzugefügt wurde ich einfach addContentView (R.layout.test) zu tun; Dann, um zu entfernen, wie man diese setVisibility verwendet (View.GONE) – James

+1

Sie müssen die Wurzel Ihres Entwurfs erhalten und es dann verstecken. Beispiel: setze 'android: id =" @ + id/root "', und rufe in deiner Aktivität 'findViewById (R.id.root) .setVisibility (View.GONE);' – zrgiu

+0

Dies ist eine falsche Antwort. Siehe die Antwort von vince. Dieser erklärt, wie Sie diese Ansicht entfernen können (die Sie nicht entfernen können) –

9

versuchen es

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

Die einzige Sache, die in Ihrer Antwort fehlt, ist rootView.removeViewAt (i); Unterbrechung; –

-1

Sie hier zwei Dinge tun können, über Sie die Sichtbarkeit zu gegangen auf dem Click-Ereignis der Schaltfläche festlegen. OR können Sie das Layout Parameter Layoutbreite und Höhe eingestellt 0DP Es wird Ihr Layout-Anzeige

4

Wenn Sie bereits den Verweis auf die Sie einfach Ansicht verstecken kann nur tun:

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

Statt Schleife durch die ViewGroup.

Verwandte Themen