Mam pytanie dotyczące aktywności Androida. Aktywność ma metodę addContentView(View)
, podczas gdy grupa View ma (podobną?) Metodę. Niestety jego nieudokumentowane "gdzie" znajduje się Widok z addContentView
. Czy to jest jak LinearLayout
po prostu dodanie widoku do dołu? Czy jest bardziej podobny do FrameLayout
, który dodaje swoje widoki "onTop"? Czy to zależy od zestawu ViewGroup
ustawionego przez setContentView
? Jeśli zanurkuję w źródłach, widzę, że addContentView
wywoła abstrakcyjną metodę Window
addContentView
. Niestety nie widzę, która klasa implementuje tę metodę. Więc co dokładnie dzieje się z działaniami addContentView
?Activity.addContentView (View) == ViewGroup.addContentView (View)?
Odpowiedz
Podstawowy układ każdej aktywności to FrameLayout
. Oznacza to, że układ, który zwykle ustawiasz pod numerem setContentView()
, jest podrzędnym elementem tego układu. addContentView()
dodaje tylko inne dziecko, dlatego zachowuje się jak FrameLayout
(co oznacza, że dodaje nowe elementy interfejsu użytkownika powyżej istniejących).
Możesz to sprawdzić, używając narzędzia o nazwie hierachyviewer
z folderu ANDROID_SDK\tools
. Oto dwa screeny:
Jest to układ przed wywołaniem addContentView()
, moja działalność polega domyślnego FrameLayout, trzymając LinearLayout z przyciskiem (mój układ tutaj). Znajduje to odzwierciedlenie w dolnym wierszu, pozostałe elementy powyżej to tytuł/pasek stanu.
Po dodaniu TextView poprzez addContentView()
wygląda to tak. Widać, że podstawa FrameLayout ma nowe dziecko.
- 1. Center View below another View
- 2. Pobierz bieżący obiekt onClickListener z obiektu Android View View
- 3. kątowa routingu ui-view wewnątrz innego ui-view
- 4. show create view definition
- 5. Recycle view - java.lang.NullPointerException
- 6. React Native View Renderowanie
- 7. Szyny pętli View
- 8. Tamil Calender View
- 9. Table View cellForRowAtIndexPath ostrzeżenie
- 10. PresentModel View Controller Problem
- 11. webviewglue nativedestroy view
- 12. openui5 js view addStyleClass
- 13. Nustache View Engine ArrayTypeMismatchException
- 14. SQL - CTE vs VIEW
- 15. DialogInterface kontra View OnClickListeners
- 16. Android start intent view apk
- 17. Testowanie jednostek Django JSON View
- 18. problemy View wysokość (ciąg dalszy)
- 19. ng-view nie wyświetli szablonu
- 20. Razor View Engine i jQuery
- 21. UIPageViewController Second View Goes Blank
- 22. Durandal Custom View Lokalizacja Strategia
- 23. Podaj komendę View w MVVM
- 24. ASP.NET Core MVC View Components
- 25. Laravel/Lumen: View :: share() alternatywa?
- 26. Master-Detail View ASP.NET MVC
- 27. Jackson Json View for Deserialization
- 28. mysql view if else problem
- 29. MVVM i View/ViewModel hierarchy
- 30. laravel 4 - zrozumienie View :: akcji()
Wow. Naprawdę doceniam twoją odpowiedź, dzięki. Twoja wskazówka i sugerowane narzędzie zaoszczędzą mi wiele godzin! Jesteś typem użytkownika, który sprawia, że Stackoverflow jest taki świetny! –
Świetna odpowiedź! Wsparcie! –
+1 dla "hierachyviewer" – RootCode