2012-02-16 14 views
5

To jest otwarte pytanie o Android ListViews, Gesty i animacje. Naprawdę nie jestem zaznajomiony z gestami w Androidzie, więc po prostu szukam pomysłów i szarej materii na tym.Jak zaimplementować gest otwarcia Android ListView

Oto dwa zrzuty ekranu i a video przykłady wpływu na to, co staram się uzasadnić. Rozważ oglądanie wideo, naprawdę warto.

enter image description here

enter image description here

Zrzuty ekranu pochodzą z projektu open source iOS znaleziono here.

Pytanie brzmi: jak zaimplementować gest otwierania listy, taki jaki widzę coraz częściej w aplikacjach na iPhone'a/iPada, ale na Androida?

Edycja 1, pomysł 1:

Ok pierwszy pomysł, AFAIK gest Pinch jest w jakiś sposób podobny gest przeciągania, więc myślę, że możemy uzyskać współrzędne X i Y z dwoma palcami na ekran?

Następnie the answer to this question może pomóc, podstawową ideą jest:

Pobierz indeks pierwszej widocznej pozycji na liście

Pobierz indeks ostatniej widocznej pozycji na liście

Iterate od pierwszego do ostatniego indeksu z getChildAt funkcji

Dla każdego dziecka, Kalifornia LL getLocationOnScreen metoda uzyskać współrzędne aktualnej pozycji powtórzyć

Po tym, niektóre porównania gestu pinch koordynuje i każda współrzędne pozycja może być wykonywane wewnątrz pętli, aby uzyskać dwa elementy, między którymi nowy rząd muszę wstawić.

Rozważania o wydajnościach Myślę, że to może zadziałać, ale być może istnieje prostszy sposób na uzyskanie tych dwóch elementów (?).

Kto jest następny? :)

Aktualizacja:

Dzięki za @rhlnair końcówki, biorę z tej okazji, aby powiedzieć wszystkim, że zacząłem pracować na to na moim wolnym czasie i jesteś bardziej niż mile widziane, aby pomóc w to.

Projekt ma numer https://github.com/arnaudbos/Android-GestureListView. Zacząłem dwie różne implementacje w dwóch różnych gałęziach i cieszyłbym się każdym, aby stworzyć nowy oddział.

Mam coś naprawdę zachęcającego w branży "attemp-through-scale-gesture-detector", ale niektóre efekty uboczne z ListView.

Przyjdźcie na ludzi!

+0

Niesamowite Pytanie po zobaczyć video .... –

+0

świetny pomysł ...... – himanshu

Odpowiedz

0

Podczas wykonywania gestu szczypania masz dwa palce na ekranie, a zatem punkt w środku tych dwóch punktów. To jest prosta arytmetyczna euklidesowa, aby znaleźć ten środkowy punkt.

Następnie znajdź jak mówisz element na liście, że ten punkt znajduje się powyżej. Wspominasz o występie i nie sądzę, żeby to był problem. Jesteś iteracją pętli kilka razy i prosząc o współrzędne. Zdarzyło mi się znacznie gorzej w wydarzeniach dotyku.

Jeśli punkt między uciskami znajduje się powyżej środka elementu listy, utwórz powyższy element i odwrotnie.

Zobacz sekcję na dole, gdzie oni wykorzystać słuchacza Skala: http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html

Korzystanie słuchacza skalę można używać wagi, aby dowiedzieć się, czy utworzyć nowy element. Jeśli skala jest powyżej ("pomniejszasz") próg tworzysz nowy element i pozwalasz mu ponownie zaludnić się z adaptera list.

Powiązane problemy