自定义Dialog


更详细的方法日后再更新,下面的代码主要出自DatePicker的那个自定义Dialog

一.style部分的核心代码

  <style name="date_picker_dialog" parent="android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowBackground">@color/date_picker_bg</item>//这行代码如果不写的话dialog宽度不能铺满屏幕
    </style>

二.java部分的核心代码

   //下面的代码是自定义View的核心代码
        //------------------------------------------------------------------------------------------------------------------
        mPickerDialog = new Dialog(mContext, R.style.date_picker_dialog);//第一个参数是context基础属性在style先调好
        mPickerDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);//设置窗体常见属性(这里去掉似乎不会有影响,因为在style中已经设置了)
        mPickerDialog.setContentView(R.layout.dialog_date_picker);//自定义写好的dialog布局

        //给window设置参数
        Window window = mPickerDialog.getWindow();
        if (window != null) {
            WindowManager.LayoutParams lp = window.getAttributes();
            lp.gravity = Gravity.BOTTOM;//Dialog在底部出现
            lp.width = WindowManager.LayoutParams.MATCH_PARENT;
            lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
            window.setAttributes(lp);
        }
        //------------------------------------------------------------------------------------------------------------------

文章作者: 灿若星河
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 灿若星河 !
评论
  目录