DialogFragment:创建片段时仅显示一次动画

Posted

技术标签:

【中文标题】DialogFragment:创建片段时仅显示一次动画【英文标题】:DialogFragment: Show animation only once when fragment is created 【发布时间】:2019-09-07 18:38:12 【问题描述】:

我的应用程序中有一个DialogFragment,我在其中使用动画来显示创建片段时的片段。我就是这样做的,

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) 
    
        // Set a theme on the dialog builder constructor!
        AlertDialog.Builder builder = 
            new AlertDialog.Builder( getActivity(), R.style.MyCustomTheme );

        builder  
        .setTitle( "Your title" )
        .setMessage( "Your message" )
        .setPositiveButton( "OK" , new DialogInterface.OnClickListener() 
                  
              @Override
              public void onClick(DialogInterface dialog, int which) 
              dismiss();                  
            
        );
        return builder.create();
    

主题

<style name="MyCustomTheme" parent="@android:style/Theme.Panel">
    <item name="android:windowAnimationStyle">@style/MyAnimation.Window</item>
</style>

<style name="MyAnimation.Window" parent="@android:style/Animation.Activity"> 
    <item name="android:windowEnterAnimation">@anim/anim_in</item>
    <item name="android:windowExitAnimation">@anim/anim_out</item>
</style>    

动画效果很好,但问题是每次恢复活动时都会发生这种情况。因此,如果片段正在显示并且我锁定屏幕然后解锁它以便暂停然后恢复活动,我会看到这个动画。我如何才能强制这种情况仅在创建片段时第一次发生并且不从那里显示它?提前致谢!

【问题讨论】:

你找到解决办法了吗??? 【参考方案1】:

在 Activity 的 onCreate 而不是 onResume 中显示对话框?

【讨论】:

以上是关于DialogFragment:创建片段时仅显示一次动画的主要内容,如果未能解决你的问题,请参考以下文章

导航到目的地时仅创建一个片段实例(android)

从 DialogFragment 回调片段

允许 DialogFragment 的外部触摸

关闭 dialogFragment 时键盘未关闭

无法使自定义 DialogFragment 在 Fragment 上透明

显示键盘时防止 DialogFragment 调整大小/折叠