android - 显示/隐藏带有幻灯片动画的 DialogFragment [Android]
问题描述
我发现太多关于同一主题的帖子,但对我没有任何帮助,我认为问题已经过时,DialogFragment 显示得太快,真的很伤我的眼睛,我想在显示/关闭 dialogfragment 时添加幻灯片动画。
我有这个全屏对话框的自定义主题:
<style name="dialogSlideStyle">
<item name="android:windowEnterAnimation">@anim/slide_left</item>
<item name="android:windowExitAnimation">@anim/slide_right</item>
</style>
<style name="AppTheme.FullScreenDialog" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:windowAnimationStyle">@style/dialogSlideStyle</item>
<!-- Primary brand color. -->
<item name="colorPrimary">#231F20</item>
<item name="colorPrimaryVariant">#231F20</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">#231F20</item>
<item name="colorSecondaryVariant">#231F20</item>
<item name="colorOnSecondary">@color/black</item>
<item name="android:colorEdgeEffect">@color/edgeColor</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">@color/white</item>
<item name="android:windowLightStatusBar" tools:targetApi="l">true</item>
<!-- Customize your theme here. -->
</style>
我正在设置这样的风格:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(STYLE_NORMAL, R.style.AppTheme_FullScreenDialog)
}
在这种风格之后,它可以真正全屏工作,但是这种风格没有应用“WindowAnimations”,它没有做幻灯片。
我也试过:
override fun getTheme(): Int {
return R.style.AppTheme_FullScreenDialog
}
不工作。
也试过:
override fun getTheme(): Int {
return R.style.dialogSlideStyle
}
还是行不通。
我的动画文件如下所示:slide_left.xml
<set>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0"
android:fromXDelta="-100%p"
android:duration="500"
/>
</set>
slide_right.xml
<set>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="100%p"
android:duration="500"/>
</set>
解决方案
推荐阅读
- mysql - Mysql 只得到 1 个结果,而不是多个
- xamarin.forms - 如何在 Xamarin.Forms 中以编程方式模拟或触发 Enter 或 Return 键
- rest - Rest:一个资源是否可以包含另一个资源的属性
- c++ - 不使用交换的单链表中的选择排序
- java - 嵌套循环的时间和空间复杂度
- web - 您如何将 jekyll 站点内容和代码分离到单独的分支中?
- javascript - 无法对齐网格项目之间的分隔线
- python - 无法将数据框的 html 内容转换为文本
- excel - 从 Excel 中的两个单元格获取 Outlook 约会的开始日期和开始时间
- postgresql - 使用 docker 的 Hasura 安装问题 - PostgreSQL 没有响应