2015-01-22 13 views
12

Szukałem w Internecie, ale nie mogłem znaleźć dobrego wyjaśnienia lub porady. Zasadniczo chcę zaimplementować tę funkcjonalność.Jak zaimplementować dostosowany widok stosu w systemie Android?

enter image description here na zsuwać

enter image description here

enter image description here

użyłem klasy StackView a ja dostać jest to "po przekątnej" stack

enter image description here

Chcę widoki być jednym z tyłu er, jak na zdjęciach powyżej.

Podobne pytanie zadawane jest tutaj ->Android customize stackview, ale nie mogłem znaleźć żadnych satysfakcjonujących odpowiedzi.

Znam kod StackView jak sugerowano, ale szczerze mówiąc, nie wiem, jak bym go dostosować, aby uzyskać to, co chcę. Po zmianie wartości parametru PERSPECTIVE_SHIFT_FACTOR_X lub PERSPECTIVE_SHIFT_FACTOR_Y nic się nie zmienia i pojawia się ten sam "widok ukośny". Czy czegoś brakuje?

Z góry dziękuję za odpowiedzi.

+0

Proszę rozważyć wypełnienie tej prośby o funkcję: https://issuetracker.google.com/issues/37076423 –

Odpowiedz

14

Zapraszam do korzystania z mojej biblioteki dostępnej pod numerem here.

enter image description here

Robi dokładnie to, co chcesz i jest oparta na ViewPager więc można go używać tylko z typowym PagerAdapter wyboru.

+0

Dziękujemy za odpowiedź! Czy mógłbyś mi powiedzieć, jak mogę zmodyfikować implementację, aby wesprzeć przesuwanie wielu kart (nie tylko jednego) jednym "silnym" machnięciem? – Want

+0

Cant naprawdę myśli o "szybkich i łatwych" rozwiązaniach ...Myślę, że musiałbyś zaimplementować coś podobnego do tego: http://stackoverflow.com/a/14969879/1993204, ale obsługując 'VerticalViewPager' zamiast poziomego. BTW zachęcamy do zaakceptowania odpowiedzi, jeśli ci to pomoże. –

+0

@blipinsk mogę dostosować swoją bibliotekę, w której mogę przesuwać widoki w lewo i w prawo, aby je odrzucić? Chcę sprawić, aby widok stosu był podobny do funkcji przeciągania. –

7

Nie można zmienić oryginału PERSPECTIVE_SHIFT_FACTOR_X, ponieważ jest to pole prywatne.

StackView wykorzystuje wiele klas, które mają widoczność pakiet i są użyteczne tylko w pakiecie android.widget.

Ponadto niektóre z tych klas są skompilowane i źródłem jest nigdzie znaleźć, więc nie można po prostu kopiuj-wklej je i stworzyć swój własny StackView od zera.

Możesz wyświetlić widoki w kolumnie, przesuwając onLayout, ale gdy je ożywisz, ich pozycje zostaną zmienione z powrotem na domyślne. Niestety, animacje widoku są wykonywane prywatnymi metodami StackView, więc nic nie możesz na to poradzić.

Lepiej jest stworzyć własną klasę, która to robi, i można odwoływać się do kodu używanego w źródle StackView. Tworzenie takiej klasy może wymagać wiele pracy i zdecydowanie nie wchodzi w zakres pojedynczego pytania.

Powiązane problemy