Android 返回前台时的DialogFragment覆盖样式

Android 返回前台时的DialogFragment覆盖样式,android,android-fragments,Android,Android Fragments,我被困在尝试覆盖DialogFragment中的样式时,该片段在至少一次背景化后显示 以下是相关代码: Mystyles.xml: <style name="Theme.MyDialog.Default"> <item name="android:windowBackground">@drawable/my_background</item> </style> <style name="Theme.MyDialog.NoAnimat

我被困在尝试覆盖DialogFragment中的样式时,该片段在至少一次背景化后显示

以下是相关代码:

My
styles.xml

<style name="Theme.MyDialog.Default">
    <item name="android:windowBackground">@drawable/my_background</item>
</style>

<style name="Theme.MyDialog.NoAnimation"
    parent="Theme.MyDialog.Default">
    <item name="android:windowEnterAnimation">@null</item>
</style>
即使对话框片段在背景化后回到前台,样式也永远不会是
R.style.Theme\u MyDialog\u NoAnimation
。调试语句显示
super.setStyle(…)
确实发生了,但我猜它发生在视图创建之后。应用程序暂停后是否可以覆盖样式


更新:请参阅我的评论,其中包括下面的答案。

回答我自己的问题

基于

在创建片段对话框后调用setStyle(int,int)将无效。


希望这能帮助其他人

回答我自己的问题

基于

在创建片段对话框后调用setStyle(int,int)将无效。

希望这能帮助其他人

private boolean wasPaused;

@Override
public void onStart() {
    super.onStart();

    if (wasPaused) {
        // when this dialog re-enters foreground, do not animate it
        super.setStyle(DialogFragment.STYLE_NO_FRAME, R.style.Theme_MyDialog_NoAnimation);
    }
}

@Override
public void onStop() {
    wasPaused = true;

    super.onStop();
}