窗口动画重叠Android 5.0上的导航栏

时间:2014-10-29 06:59:37

标签: android android-animation navigationbar translate-animation

我正在使用自定义子类Dialog在我的应用中实现Material Design bottom sheet设计模式。对话框被吸引到屏幕的底部,并使用y-translation窗口输入动画:

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:interpolator/decelerate_cubic">
    <translate android:fromYDelta="100%"
        android:toYDelta="0"
        android:duration="250" />
</set>

在早期版本的Android上,这看起来很棒(如果我自己这样说的话):对话框从屏幕底部平滑地滑入,并从导航栏中的

但是,在最新的5.0预览图像上,窗口动画发生在导航栏的顶部上,因此对话框内容会暂时与导航重叠。在这个特殊的用例中,它看起来很丑陋,很奇怪而且分散注意力。

我可以在主题或代码中设置任何内容来阻止这种情况吗?

2 个答案:

答案 0 :(得分:3)

只需使用 <item name="android:windowDrawsSystemBarBackgrounds">false</item>用于显示对话框的活动。在这种情况下,您的对话框将在动画期间位于导航栏下。

答案 1 :(得分:-3)

来自android开发者网站:

在此版本中,Android引入了一个新的工具栏小部件。这是Action Bar模式的概括,为您提供更多控制和灵活性。工具栏是层次结构中的视图,与其他视图一样,可以更轻松地与其余视图交错,为其设置动画并对滚动事件做出反应。您也可以将其设置为活动的操作栏,这意味着您的标准选项菜单操作将显示在其中。

因此,操作栏现在是您布局中的一个视图,这就是弹出窗口覆盖它的原因。 我也知道他们引入了一些z-index属性,它可能对你有帮助。