TranslationZ 在 Android 中实际做了什么?
What does TranslationZ actually do in Android?
您好,我正在开发 android 应用程序,我试图在其中实现新的 material 设计功能。我尝试同时应用 elevation 属性 和 TranslationZ 属性 但它不起作用。
<Button
android:id="@+id/button1"
style="@style/ButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:text="Name" />
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#0073ff" />
<corners android:radius="16dp" />
</shape>
<style name="ButtonStyle">
<item name="android:elevation">8dp</item>
<item name="android:translationZ">8dp</item>
<item name="android:background">@drawable/file</item>
</style>
TranslationZ 是用于动画的动态 属性。基本上它需要很好地处理海拔变化。当您按下一个按钮时,它的高度保持不变并且它的 translationZ 正在动画化。这样,视图始终知道原始高度值是多少,并且可以正确响应多个触摸事件。
内部 Z = 高程 + 平移 Z
简单修复
您的问题在更新样式时丢失触摸反馈和 Z 动画来自未扩展父项android :Widget.Material.Button 你的风格。如果这样做,您将不必执行任何手动动画或触摸反馈。只需覆盖您需要的内容即可!
Z-深度解释
根据文档,TranslationZ
只是 Z 值的动态分量。这意味着当您在 Z 轴(使用 ViewPropertyAnimator
等)中为视图设置动画时,动画状态将从 Z 值的静态分量 start, elevation
,并将 结束 在完整的 Z 值处,其中 translation
分量是两者之间的变化,或增量。
Z = 高程 + 平移 Z
要使用 translationZ 实现动画,您需要制作 StateListAnimator
。在您的特定情况下,因为您没有设置任何动画,所以为了将 Z 深度设置为 Button
,您只需要 elevation
.
您好,我正在开发 android 应用程序,我试图在其中实现新的 material 设计功能。我尝试同时应用 elevation 属性 和 TranslationZ 属性 但它不起作用。
<Button
android:id="@+id/button1"
style="@style/ButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:text="Name" />
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#0073ff" />
<corners android:radius="16dp" />
</shape>
<style name="ButtonStyle">
<item name="android:elevation">8dp</item>
<item name="android:translationZ">8dp</item>
<item name="android:background">@drawable/file</item>
</style>
TranslationZ 是用于动画的动态 属性。基本上它需要很好地处理海拔变化。当您按下一个按钮时,它的高度保持不变并且它的 translationZ 正在动画化。这样,视图始终知道原始高度值是多少,并且可以正确响应多个触摸事件。
内部 Z = 高程 + 平移 Z
简单修复
您的问题在更新样式时丢失触摸反馈和 Z 动画来自未扩展父项android :Widget.Material.Button 你的风格。如果这样做,您将不必执行任何手动动画或触摸反馈。只需覆盖您需要的内容即可!
Z-深度解释
根据文档,TranslationZ
只是 Z 值的动态分量。这意味着当您在 Z 轴(使用 ViewPropertyAnimator
等)中为视图设置动画时,动画状态将从 Z 值的静态分量 start, elevation
,并将 结束 在完整的 Z 值处,其中 translation
分量是两者之间的变化,或增量。
Z = 高程 + 平移 Z
要使用 translationZ 实现动画,您需要制作 StateListAnimator
。在您的特定情况下,因为您没有设置任何动画,所以为了将 Z 深度设置为 Button
,您只需要 elevation
.