Klasa Activity
ma metodę setContentView()
. Klasa PopupWindow
ma metodę getContentView()
, ale nic innego nie robi. Czy istnieje inny sposób na uzyskanie głównego widoku treści dla działania?Dlaczego nie ma metody getContentView() dla działania?
Odpowiedz
Szukam również tego, ale pomyślałem, że łatwiej będzie dodać identyfikator do najbardziej widocznej grupy ViewGroup.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/outer">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
Będę jednak szukał jeszcze kilku minut. Wchodzę w to, abym mógł użyć findViewWithTag z najbardziej zewnętrznego układu.
byłem w stanie dostać się do zawartości danej działalności z tej rozmowy:
ViewGroup view = (ViewGroup)getWindow().getDecorView();
Powinieneś raczej sprawdzenia, getDecorView zwraca ViewGroup instanceof dla wszystkich przypadków, ale z LinearLayout w Działaniu powyższy kod działa dobrze. Aby dostać się do LinearLayout mogłeś wtedy tylko:
LinearLayout content = (LinearLayout)view.getChildAt(0);
A jeśli masz funkcję tak:
void logContentView(View parent, String indent) {
Log.i("test", indent + parent.getClass().getName());
if (parent instanceof ViewGroup) {
ViewGroup group = (ViewGroup)parent;
for (int i = 0; i < group.getChildCount(); i++)
logContentView(group.getChildAt(i), indent + " ");
}
}
Można iterację wszystkich widokach i rejestrować swoje nazwy klas z poniższej rozmowy wewnątrz aktywność:
logContentView(getWindow().getDecorView(), "");
+1 Używany widok ViewGroup = (ViewGroup) getWindow(). GetDecorView(); aby wyczyścić wszystkie widoki z działania, wywołując metodę view.removeAllViews(); - Dziękuję za odpowiedź! – AgentKnopf
następujący wiersz rade:
findViewById(android.R.id.content);
jest zasadniczo taka sama jak (to musi być wywołana w kontekście działalności)
this.findViewById(android.R.id.content);
działa jak urok. – atreat
- 1. dlaczego nie ma metody usuwania na HttpWebResponse
- 2. Dlaczego mapa nie ma metody mapy?
- 3. Dlaczego w CSS nie ma centrum swobodnego działania?
- 4. Dlaczego nie ma Xcode dla Windows?
- 5. getContentView w Androidzie
- 6. dlaczego nie ma metody Center() klasy Rectangle w języku C#?
- 7. Dlaczego Magento ma _konstruować i _konstruować metody?
- 8. Dlaczego aplikacja Android Wear DataMap nie ma metody putIntArray?
- 9. Nie znaleziono publicznej metody działania ".." na kontrolerze ".."
- 10. Nie można wywołać metody getSupportFragmentManager() z działania
- 11. asynchroniczne Metody działania
- 12. Dlaczego nie ma typeklasy dla typów kontenerów?
- 13. Dlaczego nie ma operatora [] dla std :: list?
- 14. Dlaczego nie ma wbudowanego typu dla DateTime?
- 15. Dlaczego nie ma wystąpienia wystąpienia dla funkcji?
- 16. Niejawne metody działania ASP.NET MVC
- 17. Dlaczego nie ma "instrukcji połączenia metody złożonej", tj. ". ="?
- 18. Dlaczego Java nie ma metody putIfAbsent (klucz, dostawca) w Mapie?
- 19. Dlaczego nie ma metody mapToInt() w klasie OptionalInt?
- 20. metody Dlaczego przeciążony ma niższy priorytet niż metody instancji
- 21. HTMLInputElement nie ma metody "val"
- 22. HTMLCanvasElement nie ma metody "toDataUrl"
- 23. HttpWebRequest nie ma metody zamknięcia?
- 24. Obiekt nie ma metody 'replace'
- 25. Mysema Querydsl: Nie ma metody JPAQuery # list()
- 26. Dlaczego nie ma IntStream.flatMapToObj()?
- 27. Dlaczego nie ma jednolitej_dystrybucji?
- 28. Dlaczego mój filtr działania nie jest wywoływany?
- 29. Dlaczego nie ma Sortuj dla IList <T>?!?! (edytowane)
- 30. Dlaczego Scala nie ma decltype?
ta działa również z findViewById. Nie zdawałem sobie sprawy, że możesz umieścić identyfikator w zewnętrznym tagu xml. W ten sposób używam: thisView = (View) findViewById (R.id.parent_view); –