2010-08-14 15 views
16

Piszę poziomy widok telewizyjny, podobny do tych znanych z systemów tivo i podobnych. Dla każdego kanału istnieje rząd z programami na następne 6 godzin, o szerokości proporcjonalnej do czasu ich odtwarzania.ListView vs LinearLayout

Moim pomysłem jest napisanie niestandardowego widgetu dla każdego wiersza i ułożenie ich jeden na drugim. To powinno pozwolić mi ładować dane narastająco, zamiast używać jednego dużego widoku niestandardowego. Będę jednak nadal potrzebował przycisków przewijania do przodu i do tyłu u góry strony, które aktualizują wszystkie wiersze po kliknięciu.

Teraz nie jestem pewien, czy powinienem umieścić te widoki w ListView lub LinearLayout.

Mam pobrane następujące zalety i wady:

  • ListView
    • Plusy
      • pamięci wydajny - Przetwarza ukrytych widoków
      • wydaje się być używane przez wszystkich w Androidzie społeczność, na wszystko.
      • Łatwiej jest zrobić to leniwym, podczas aktualizacji wierszy, a tym samym wymagają mniej procesora.
    • Wady
      • Overkill - I nie będzie używany większość funkcji jakie ma do zaoferowania
      • To może być nieco trudniejsze do mocowania clickListeners.
  • LinearLayout
    • Plusy
      • prosty w użyciu. Robi to, czego można się spodziewać.
    • Wady
      • nie widziałem go nigdzie stosowane przez długi list.
      • Być może jest wolniej?

"wydaje się być wykorzystywane przez wszystkich" argumentem dla ListView obejmuje także "master" Twitter app, który używa Google, aby pokazać "Good Android design". Wydaje się też, że nie używają większości swoich funkcji.

Czy masz jakieś doświadczenie w tego rodzaju pracy? Czy są jakieś zalecenia, które przegapiłem podczas czytania przez dokumenty?

+0

prosty do zrozumienia, Układ może zawierać widok, ale widok nie może zawierać układu. Myśl i stosuj zgodnie ze swoją potrzebą. –

+0

Też interesuję się kompromisami. Zaimplementowałem widok na żywo wszystkich danych z czujników zarówno w LinearLayout, jak i ListView (Nexus 4). ListView był znacznie wolniejszy, a aktualizacje ekranu ograniczały się do 200 ms. Zauważ, że użyłem ExpandableListView i nie użyłem metody adapter.onDataSetChanged(), ale zmieniono tylko odpowiednie widoki tekstowe. –

+0

ciekawe pytanie – Fattie

Odpowiedz

1

Skończyło się na używaniu niestandardowego widgetu. Nadal nie wiem, który z wymienionych jest najbardziej skuteczny.

2

Ten harmonogram wygląda podobnie do aplikacji Google IO 2010. Możesz checkout ich kod i zobaczyć, jak to zrobili.

+1

Dzięki za cynk. Świetna aplikacja do nauki. Jednak widok harmonogramu w aplikacji jest pionowy, a nie poziomy i budowany jako jeden duży układ niestandardowy. Nie musi też obsługiwać wielu wpisów. Tak naprawdę to nie pomaga mi w moim ogólnym problemie z decyzją. –