使用 DialogFragment 实现弹窗2-修改样式

Style方式修改

1、添加新的样式,继承自一个 Dialog 基础样式


2、在DialogFragment的onCreate方法里进行设置

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setStyle(DialogFragment.STYLE_NO_TITLE, R.style.Mdialog);
}

代码修改

//在onCreate或者onCreateView都可以
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);  
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.RED));  
getDialog().getWindow().setDimAmount(0.5f);//背景黑暗度  

// 设置宽度为屏宽, 靠近屏幕底部。
Window window = getDialog().getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.gravity = Gravity.BOTTOM; // 紧贴底部
lp.width = WindowManager.LayoutParams.MATCH_PARENT; // 宽度持平
window.setAttributes(lp);

接口支持

控件有一个 setStyle 方法
方法原型:
void setStyle (int style, int theme)
参数:
style: 四个选项: STYLE_NORMAL, STYLE_NO_TITLE, STYLE_NO_FRAME, or STYLE_NO_INPUT.
theme:可选,默认是0

style参数用来设置一些通用设置,但是可能会被theme覆盖

ps: Calling this after the fragment's Dialog is created will have no effect.

参考

Android 撸起袖子,自己封装 DialogFragment
DialogFragment实现底部弹窗
DialogFragmentDemos

你可能感兴趣的:(使用 DialogFragment 实现弹窗2-修改样式)