探索日期对话框(DatePickerDialog)样式使用

前言

      最近使用日历,在没有设置样式的情况下,如下图效果是这样的,?完全白花花一片完全找到到按钮在哪里啊,然后就是各种调试~此处略

探索日期对话框(DatePickerDialog)样式使用_第1张图片

一 AlertDialog 样式

    我是知道AlertDialog 有如下样式

/**
 * Special theme constant for {@link #AlertDialog(Context, int)}: use
 * the traditional (pre-Holo) alert dialog theme.
 *
 * @deprecated Use {@link android.R.style#Theme_Material_Dialog_Alert}.
 */
@Deprecated
public static final int THEME_TRADITIONAL = 1;

/**
 * Special theme constant for {@link #AlertDialog(Context, int)}: use
 * the holographic alert theme with a dark background.
 *
 * @deprecated Use {@link android.R.style#Theme_Material_Dialog_Alert}.
 */
@Deprecated
public static final int THEME_HOLO_DARK = 2;

/**
 * Special theme constant for {@link #AlertDialog(Context, int)}: use
 * the holographic alert theme with a light background.
 *
 * @deprecated Use {@link android.R.style#Theme_Material_Light_Dialog_Alert}.
 */
@Deprecated
public static final int THEME_HOLO_LIGHT = 3;

/**
 * Special theme constant for {@link #AlertDialog(Context, int)}: use
 * the device's default alert theme with a dark background.
 *
 * @deprecated Use {@link android.R.style#Theme_DeviceDefault_Dialog_Alert}.
 */
@Deprecated
public static final int THEME_DEVICE_DEFAULT_DARK = 4;

/**
 * Special theme constant for {@link #AlertDialog(Context, int)}: use
 * the device's default alert theme with a light background.
 *
 * @deprecated Use {@link android.R.style#Theme_DeviceDefault_Light_Dialog_Alert}.
 */
@Deprecated
public static final int THEME_DEVICE_DEFAULT_LIGHT = 5;

/**
 * No layout hint.
 * @hide
 */
public static final int LAYOUT_HINT_NONE = 0;

/**
 * Hint layout to the side.
 * @hide
 */
public static final int LAYOUT_HINT_SIDE = 1;
而现在的DatePickerDialog不支持使用这些值了,来看下它的构造方法:

public DatePickerDialog(@NonNull Context context, @StyleRes int themeResId,
        @Nullable OnDateSetListener listener, int year, int monthOfYear, int dayOfMonth) {
    this(context, themeResId, listener, null, year, monthOfYear, dayOfMonth);
}
看它的第二个参考限定为StyleRes类型,只能使用style了。

二 DatePickerDialog样式(自定义style)

1 NoActionBar
效果图
探索日期对话框(DatePickerDialog)样式使用_第2张图片

说明,此时也可以通过windowBackground属性改变其背景颜色。
2 自定义样式
这种样式有浮动模式和非浮动模式,关键在于属性windowIsFloating。
(1)非浮动模式
效果图:
探索日期对话框(DatePickerDialog)样式使用_第3张图片

通过windowBackground属性改变其背景颜色
探索日期对话框(DatePickerDialog)样式使用_第4张图片
(2)浮动模式
      把上面windowIsFloating属性设置为true。
效果图:
探索日期对话框(DatePickerDialog)样式使用_第5张图片
 3 使用 Base.Theme.AppCompat.Light.Dialog.FixedSize

效果图:
探索日期对话框(DatePickerDialog)样式使用_第6张图片

说明,很明确这种样式比起上面的多了个半透明背景,用户体验更好些,当然还有其他的很多样式~,就不再这里尝试了。




你可能感兴趣的:(Android,UI)