2010-07-10 23 views
8

Pracuję nad aplikacją dla systemu Android, która ma trzy bardzo podobne działania. Chciałbym, aby użytkownik mógł przełączać się między nimi, przesuwając w lewo i w prawo na ekranie. ten sposób, że udało mi się do tej pory:Android: jak przełączać się między działaniami, takimi jak przełączanie komputerów w aplikacji domowej?

Śledziłem ten post

Potem zmienił onSwipe() metoda w ten sposób:

@Override 
public void onSwipe(int direction) { 
    Intent intent = new Intent(); 

    switch (direction) { 

    case SimpleGestureFilter.SWIPE_RIGHT: 
    intent.setClass(this, TodoTodaySheet.class); 
    break; 
    case SimpleGestureFilter.SWIPE_LEFT: 
    intent.setClass(this, TrashSheet.class); 
    break; 

    } 
    startActivity(intent); 
} 

to działa, ale nie jestem całkowicie zadowolony z tego. Co więcej, nie wiem, czy to jest właściwe podejście.

Chciałbym mieć zachowanie podobne do tego w aplikacjach domowych, podczas przełączania pulpitu. Dlatego chciałbym płynniejszą animację i wygląd wywoływanej aktywności z właściwego kierunku, np. z lewej strony ekranu podczas przesuwania z prawej strony.

Jakieś wskazówki? Dziękuję Ci bardzo.

+0

Ta wskazówka nie służy do przesuwania działań (chcę to zrobić samodzielnie, ale nie znalazłem jeszcze sposobu, aby to zrobić), ale przełączanie między widokami najlepiej wykonać za pomocą: ViewFlow https://github.com/ pakerfeldt/android-viewflow – Ted

+0

@dgraziotin, którego podejścia użyłeś w końcu do przesuwania różnych aktywności? – juned

Odpowiedz

4

Ekran domowy nie przewijać między działalnością tylko przewija pomiędzy różne poglądy jak widać w its' source code (linia 298 jest, gdy ekrany są zmienione).

Jeśli przełączasz się między czynnościami, jesteś zdany na łaskę konfiguracji użytkowników, &, możliwości urządzeń dotyczące tego, co dzieje się z wyświetlaczem podczas przejścia, więc niewiele możesz zrobić.

+0

Dlatego jedynym sposobem na osiągnięcie tego jest użycie ViewFlipper, jak sugeruje Faisal, lub mieć TabView i trochę gestów, aby przełączać się między działaniami, jak robi to aplikacja Wiadomości. – dgraziotin

+0

Korzystanie z narzędzia ViewFlipper ograniczyłoby użytkownika do korzystania z pojedynczego działania, które ma wpływ na to, w jaki sposób system operacyjny zarządza aplikacją (np. System operacyjny pozostawia wybór polegający na zabijaniu wszystkiego lub nic, gdy czyści zasoby). –

1

Chociaż prawdopodobnie najlepiej jest mieć je jako trzy oddzielne działania, widziałem ludzi używających ViewFlipper, aby osiągnąć podobny efekt w jednym działaniu.

Oto link z trochę więcej informacji o nim: http://www.inter-fuser.com/2009/07/android-transistions-slide-in-and-slide.html

+0

Dzięki za to. Chciałbym uniknąć tego podejścia, ponieważ trzy czynności (które są listactivities) są podobne, ale wykonują dość ciężkie zadanie (pobieranie danych z bazy danych itp.). – dgraziotin