我正在使用自定义子类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预览图像上,窗口动画发生在导航栏的顶部上,因此对话框内容会暂时与导航重叠。在这个特殊的用例中,它看起来很丑陋,很奇怪而且分散注意力。
我可以在主题或代码中设置任何内容来阻止这种情况吗?
答案 0 :(得分:3)
只需使用
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
用于显示对话框的活动。在这种情况下,您的对话框将在动画期间位于导航栏下。
答案 1 :(得分:-3)
来自android开发者网站:
在此版本中,Android引入了一个新的工具栏小部件。这是Action Bar模式的概括,为您提供更多控制和灵活性。工具栏是层次结构中的视图,与其他视图一样,可以更轻松地与其余视图交错,为其设置动画并对滚动事件做出反应。您也可以将其设置为活动的操作栏,这意味着您的标准选项菜单操作将显示在其中。
因此,操作栏现在是您布局中的一个视图,这就是弹出窗口覆盖它的原因。 我也知道他们引入了一些z-index属性,它可能对你有帮助。