2013-03-26 14 views
5

Przeprosiny, jeśli wcześniej o to pytano, ale próbowałem googlować w temacie bez żadnego dobrego wyniku. Zasadniczo próbuję znaleźć zastępstwo dla widżetu Galeria, który Google zdecydował się wycofać. Do tej pory mam następujących kandydatów:Alternatywy dla android.widget.Gallery (nie aplikacja Galeria)

  1. ViewPager. Niestety (o ile wiem), możesz wyświetlać tylko jeden widok naraz. Wiem, że ktoś opublikował obejście tego tutaj: https://gist.github.com/devunwired/8cbe094bb7a783e37ad1. Ale mam problem z tym podejściem. Na moim telefonie pokazane są trzy obrazy (poziomo). Najbardziej po lewej stronie są najbardziej statyczne, podczas gdy środkowe jest przewijane (jak to powinno robić ViewPager). tj. najbardziej po lewej stronie obraz z prawej strony nie jest przewijany podczas przewijania strony ViewPager. Muszę odrzucić to rozwiązanie.

  2. GridView. Wydaje się być dobrym, ale wygląda na to, że GridView może być przewijany poziomo w pionie &. Chcę tylko jeden wiersz i przewijam w poziomie. O ile wiem, Galeria nie jest zaprojektowana z myślą o tym.

  3. HorizontalScrollView. Kolejny, który Google zasugerował w Javadocs (z wyjątkiem ViewPager). Wydaje się być dobrym do użycia, ale ... jeśli zrozumiem to poprawnie, stosując to podejście, cała zawartość zostanie utworzona z góry. Nie ma leniwego ładowania ..

Więc jestem zaintrygowany tutaj. Wydaje się, że najlepszym rozwiązaniem jest użycie ViewPagera z tylko jednym widokiem na raz (niepożądane dla tego, co chcę) lub pozostać przy Galerii.

Co ludzie myślą?

Z góry dziękuję!

+0

http://code.google.com/p/android-ui-utils/downloads/detail?name=CarouselExample.zip. Karuzela 3d z renderscripts. – Raghunandan

Odpowiedz

-2

android.support.v4.view.ViewPager to odpowiedź ostateczna.

Możesz wyświetlić dowolną liczbę stron (View s), wszystko zależy od PagerAdapter. Ma metodę .getPageWidth(position), która jest wywoływana dla każdej strony. Jeśli na przykład zwróci 0.5, strona będzie miała tylko połowę szerokości wartości ViewPager.

Nie pozostań przy Gallery, ponieważ ma problemy z wyciekiem pamięci.

+1

Witam. Tak, jestem świadomy metody getPageWidth. Niestety pokazuje bieżący widok po lewej stronie, a nie w środku (co moim zdaniem jest dość mylące). Ponadto mam onPageChangeListener(), aby wyświetlić tekst dla bieżącej strony. Wydaje się, że nie mogę "aktywować" kilku ostatnich widoków, jeśli wszystkie widoki są już wyświetlane. Na przykład, powiedz, że ekran może wyświetlać 5 elementów naraz. Gdy użytkownik przewinie do ostatniej strony (powiedzmy, w sumie 28 pozycji), na ostatniej stronie wyświetli się pozycja 26-28. Ale nie mogę zmienić strony na pozycję 27 i 28, ponieważ są już wyświetlane. Mam nadzieję, że ma to sens –