Uzyskaj widok root z bieżącej aktywności
Wiem, jak uzyskać widok root za pomocą widoku .getRootView () . Jestem również w stanie uzyskać Widok Z zdarzenia onClick
przycisku, gdzie argumentem jest widok. Ale jak Mogę uzyskać widok w aktywności ?
8 answers
Jeśli potrzebujesz głównego widoku swojej aktywności (aby móc dodać tam swoją zawartość) użyj
findViewById(android.R.id.content)
Odnotowano również, że na niektórych urządzeniach trzeba używać
getWindow().getDecorView().findViewById(android.R.id.content)
Zamiast tego.
Należy pamiętać, że jak donosił Booger, może to być za paskiem nawigacyjnym (z przyciskiem wstecz itp.)na niektórych urządzeniach (ale wydaje się, że na większości urządzeń tak nie jest).
Jeśli chcesz uzyskać widok, który dodałeś do swojej aktywności za pomocą metody setContentView()
to tak jak napisał pottedmeat możesz użycie
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
Ale lepiej po prostu ustawić id do tego widoku w układzie xml i użyć tego id zamiast.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-31 09:56:34
To jest to, czego używam, aby uzyskać widok główny znaleziony w pliku XML przypisanym do setContentView
:
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-21 06:35:27
Testowałem to w Androidzie 4.0.3, tylko:
getWindow().getDecorView().getRootView()
Pokaż ten sam widok co otrzymujemy z
anyview.getRootView();
com.android.internal.policy.impl.PhoneWindow$DecorView@#########
I
getWindow().getDecorView().findViewById(android.R.id.content)
Dawanie dziecka z jego
android.widget.FrameLayout@#######
Proszę potwierdzić.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-19 03:38:19
Get root view from current activity.
Wewnątrz naszej aktywności możemy uzyskać root
widok z:
ViewGroup rootView = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
Lub
View rootView = getWindow().getDecorView().getRootView();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-21 18:07:15
Po prostu okryj kogoś łatwiejszym sposobem:
Poniższy kod daje widok całego działania:
View v1 = getWindow().getDecorView().getRootView();
Aby uzyskać widok certian w aktywności,na przykład widok imageView wewnątrz aktywności, po prostu dodaj id tego widoku, który chcesz uzyskać:
View v1 = getWindow().getDecorView().getRootView().findViewById(R.id.imageView1);
Hope this helps somebody
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-26 00:04:48
anyview.getRootView();
to będzie najprostszy sposób.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-14 04:08:45
Aby zobaczyć bieżącą aktywność
W każdym onclicku otrzymamy "View view", używając 'view' get the rootView.
View view = view.getRootView ();
I aby uzyskać Widok we fragmencie
View view = FragmentClass.getView ();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-12 07:43:32
Jeśli jesteś w aktywności, Załóżmy, że istnieje tylko jeden widok główny, możesz go uzyskać w ten sposób.
ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
Możesz następnie wrzucić go do swojej prawdziwej klasy
Lub możesz użyć
getWindow().getDecorView();
Zauważ, że będzie to Widok actionbar, twój Widok znajduje się poniżej widoku actionbar
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-16 06:34:18