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



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

<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预览图像上,窗口动画发生在导航栏的顶部上,因此对话框内容暂时与导航重叠。在这个特殊的用例中,它看起来丑陋、奇怪并且令人分心。

我可以在主题或代码中设置什么来防止这种情况发生吗?

只需使用

<item name="android:windowDrawsSystemBarBackgrounds">false</item>

用于显示对话框的活动。在这种情况下,在动画期间,对话框将位于导航栏下。

来自android开发者网站:

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

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

最新更新