2015-03-31 3 views
15

Я пробовал обе функции, и я не знаю, почему я должен использовать возвышение вместо перевода или наоборот.Разница между высотой и трансляциейZ

Оба генерируют тень, когда я их использовал.

Я должен использовать в то же время (с тем же значением)? Я должен использовать только один?

Спасибо заранее!

EDIT:

Я сделал визуальное сравнение с может видеть это ясно:

comparison elevation vs translationZ

вывод о том, что я получаю (по крайней мере, с этим диапазоном от 0 до 16 дп) один из их невозможно.

Я вижу ту же тень в 8 против 8 и 16 против 16 и ту же тень в 16 против 8 + 8.

Но у меня нет большого видения, как вы думаете, ребята?

ответ

18

Это потому, что фактическое значение Z представляет собой сумма elevation и translationZ

Из docs, то elevation является «базовой глубиной г той точки зрения», и это является статическим переменным, в то время как translationZ является динамическим ,

Так что elevation - ваша стартовая ценность, и для анимации вы должны использовать translationZ.

Source

+0

взглянуть на мое редактирование, я добавил визуальное сравнение – Dahnark

+0

О вашем ответе, я могу получить такое же решение, используя всегда translationZ, при запуске, а затем делать анимацию (пример, начните 8dp и перевести его до 16dp, а затем вернуться к 8dp), что с использованием elevation + translation – Dahnark

+0

@Dahnark Это правда, но, например, когда у вас есть несколько элементов с анимацией всплывающих окон (или масштабирования или ....), вы все равно можете используйте свойство elevation, чтобы отображать возвышение всех этих элементов отдельно. – Ferdau