给DialogFragment设置样式

记录:

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setStyle(STYLE_NO_FRAME, R.style.DuobaoDialog);
}

    @Override
public void onStart() {
    super.onStart();
    //设置宽度顶满屏幕,无左右留白
    DisplayMetrics dm = new DisplayMetrics();
    getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
    getDialog().getWindow().setLayout(dm.widthPixels, getDialog().getWindow().getAttributes().height);

    //设置背景色透明,在style中已设置backgroundDimEnabled为false,这里不需要.
    Window window = getDialog().getWindow();
    WindowManager.LayoutParams windowParams = window.getAttributes();
    windowParams.dimAmount = 0.0f;
    window.setAttributes(windowParams);
    //再次设置出现动画
    window.getAttributes().windowAnimations = R.style.DialogAnimation;
}



<style name="DuobaoDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@color/transparent</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:backgroundDimEnabled">false</item><!--activity不变暗-->
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowAnimationStyle">@style/DialogAnimation</item>
</style>


<style name="DialogAnimation">
    <item name="android:windowEnterAnimation">@anim/bottom_dialog_enter_anim</item>
    <item name="android:windowExitAnimation">@anim/bottom_dialog_exit_anim</item>
</style>

enter anim

<?xml version="1.0" encoding="utf-8"?>

<scale
    android:duration="@android:integer/config_longAnimTime"
    android:fromXScale="1.0"
    android:fromYScale="0.5"
    android:pivotX="50%"
    android:pivotY="0%"
    android:toXScale="1.0"
    android:toYScale="1.0" />

<translate
    android:duration="@android:integer/config_longAnimTime"
    android:fromYDelta="50%"
    android:toYDelta="0%"/>

<alpha
    android:duration="@android:integer/config_longAnimTime"
    android:fromAlpha="0.0"
    android:toAlpha="1.0"/>

exit anim

<?xml version="1.0" encoding="utf-8"?>

<scale
    android:duration="@android:integer/config_longAnimTime"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="50%"
    android:pivotY="100%"
    android:toXScale="1.0"
    android:toYScale="0.5" />

<translate
    android:duration="@android:integer/config_longAnimTime"
    android:fromYDelta="0%"
    android:toYDelta="100%"/>

<alpha
    android:duration="@android:integer/config_longAnimTime"
    android:fromAlpha="1.0"
    android:toAlpha="0.3"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值