Ich weiß, wie man die Root-Ansicht mit View.getRootView() . Ich bin auch in der Lage, die Ansicht von einer Schaltfläche zu erhalten onClick
Ereignis, bei dem das Argument ein Siehe . Aber wie kann ich die ver in einem Tätigkeit ?
Antworten
Zu viele Anzeigen?Wenn Sie die Wurzelansicht Ihrer Aktivität benötigen (damit Sie dort Ihre Inhalte hinzufügen können), verwenden Sie
findViewById(android.R.id.content).getRootView()
Außerdem wurde berichtet, dass man auf einigen Geräten die
getWindow().getDecorView().findViewById(android.R.id.content)
stattdessen.
Bitte beachten Sie, dass sich dies, wie Booger berichtet, auf einigen Geräten hinter der Navigationsleiste (mit der Schaltfläche "Zurück" usw.) befinden kann (auf den meisten Geräten scheint dies jedoch nicht der Fall zu sein).
Wenn Sie die Ansicht, die Sie Ihrer Aktivität hinzugefügt haben, mit setContentView()
Methode können Sie dann, wie pottedmeat schrieb, die
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
Aber besser einfach id zu dieser Ansicht in Ihrem Xml-Layout und verwenden Sie diese id statt.
Ich habe dies nur unter Android 4.0.3 getestet:
getWindow().getDecorView().getRootView()
die gleiche Ansicht vermitteln, die wir von
anyview.getRootView();
com.android.internal.policy.impl.PhoneWindow$DecorView@#########
et
getWindow().getDecorView().findViewById(android.R.id.content)
das Kind seiner
android.widget.FrameLayout@#######
Bitte bestätigen.
- See previous answers
- Weitere Antworten anzeigen