GridView VS GridLayout w aplikacjach na Androida


212

Do implementacji przeglądarki zdjęć w systemie Android muszę użyć siatki. Chciałbym poznać różnicę między GridView a GridLayout .

Abym wybrał właściwy.

Obecnie używam GridView do dynamicznego wyświetlania obrazów.

Odpowiedzi:


264

GridView jest ViewGroup który wyświetla elementy w dwuwymiarowej siatki przewijania. Elementy w siatce pochodzą z ListAdapter powiązanego z tym widokiem.

To jest to, czego chcesz użyć (nadal używać). Ponieważ GridView pobiera dane z ListAdapter, jedynymi danymi załadowanymi do pamięci będą dane wyświetlane na ekranie. GridViews, podobnie jak ListViews, ponownie wykorzystuje i przetwarza swoje widoki dla lepszej wydajności.

Natomiast GridLayout to układ, który umieszcza swoje dzieci w prostokątnej siatce.

Został wprowadzony na poziomie API 14, a ostatnio został ponownie zaimportowany do Biblioteki wsparcia. Jego głównym celem jest rozwiązywanie problemów z wyrównaniem i wydajnością w innych układach. Sprawdź ten samouczek, jeśli chcesz dowiedzieć się więcej o GridLayout.


15
GridLayout to także grupa ViewGroup.
Dzmitry Lazerka

22
Nigdy nie powiedziałem, że tak nie jest. Właśnie podkreślałem fakt, że jest to układ.
Benito Bertoli,

16
Scenariusz @laki one byłby taki, gdybyś chciał załadować wiązkę zdjęć do formacji podobnej do siatki. Użycie GridView spowoduje załadowanie tylko do pamięci widoków widocznych na ekranie. Natomiast jeśli używasz GridLayout, będziesz musiał załadować wszystkie obrazy, które będą wyświetlane w dowolnym momencie, powodując błąd braku pamięci w większości urządzeń.
BigBen3216,

15
Podstawowa różnica wydaje się polegać na tym, że GridView może pomieścić tylko jednolitą szerokość kolumny. Układ siatki pozwala na zawartość obejmującą 2 lub więcej kolumn. Układ siatki pozwala projektować ekrany o treści obejmującej różne rozmiary kolumn
Yasir

58
@laki Scenariusz pierwszy: Narysuj kalkulator, GridLayout. Scenariusz drugi: Narysuj galerię, GridView.
Mario Velasco
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.