2015-03-31 26 views
15

Próbowałem obu funkcji i nie wiem, dlaczego powinienem używać elewacji zamiast translacji lub viceversa.Różnica między wysokością a tłumaczeniemZ

Obie generują cień, gdy ich użyłem.

Powinienem użyć w tym samym czasie (z tą samą wartością)? Powinienem użyć tylko jednego?

Z góry dziękuję!

EDIT:

Zrobiłem porównanie wizualny można go zobaczyć wyraźnie:

comparison elevation vs translationZ

wniosku, że mogę to (przynajmniej w tym zakresie od 0 do 16 DP) jednego z są one zbędne.

Widzę ten sam cień w 8 vs 8 i 16 vs 16 i ten sam cień w 16 vs 8 + 8.

Ale nie mam wspaniałej wizji, jak myślisz, chłopaki?

Odpowiedz

18

To dlatego, że rzeczywista wartość Z jest sumą elevation i translationZ

Z docs The elevation jest „baza głębokość oo w widoku” i jest to zmienna statyczna, natomiast translationZ jest dynamiczna .

Tak więc elevation to wartość początkowa, a w przypadku animacji należy użyć wartości translationZ.

Source

+0

spojrzeć na mój edit dodałem wizualne porównanie – Dahnark

+0

o odpowiedź, czy mogę dostać to samo rozwiązanie, używając zawsze translationZ, na początku, a później robi animacji (przykład, zaczynają się 8dp i przełożyć je do 16dp, a później wrócić do 8dp), używając elewacji + tłumaczenie – Dahnark

+0

@Dahnark To prawda, ale na przykład, gdy masz wiele przedmiotów z animacją wyskakującą (lub powiększoną lub ...), możesz nadal użyj właściwości elewacji, aby wyświetlić wysokość wszystkich tych elementów osobno. – Ferdau