【问题标题】:Blank white space around Timepicker dialogTimepicker 对话框周围的空白区域
【发布时间】:2016-01-16 22:00:08
【问题描述】:

我正在尝试为我的应用程序创建一个时间选择器.. 以及将主题设置为Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth

我得到这个输出

我在对话框周围出现了一个空白区域

当我将其设置为使用父活动的主题appcompat.noactionbar时,这不会发生

//not happening here
  return new TimePickerDialog(getActivity(),this, hour, minute,is24HourView );

这是我的时间选择器代码

    public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener{

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState){
        //Use the current time as the default values for the time picker
        final Calendar c = Calendar.getInstance();
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);

        boolean is24HourView=true;
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
        String formattedTime = sdf.format(c.getTime());
        Log.d("time", formattedTime);
        //Create and return a new instance of TimePickerDialog
//        return new TimePickerDialog(getActivity(),this, hour, minute,is24HourView );
      return new TimePickerDialog(getActivity(), android.R.style.Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth,this, hour, minute,is24HourView );

    }

【问题讨论】:

    标签: android android-layout android-alertdialog android-theme


    【解决方案1】:

    我知道这是旧的,但这里有一个解决方案。

    您可以在styles.xml 中创建一个自定义主题,并将您选择的主题作为父主题,并将其android:windowBackground 属性设置为@android:color/transparent

    <style name="TimePickerDialogStyle" parent="@android:style/Theme.DeviceDefault.Light.Dialog.NoActionBar.MinWidth">
        <item name="android:windowBackground">@android:color/transparent</item>
    </style>
    

    然后将您的自定义主题传递给TimePickerDialog 构造函数:

    new TimePickerDialog(getActivity(), R.style.TimePickerDialogStyle, this, hour, minute, is24HourView);
    

    【讨论】:

      【解决方案2】:

      变化:

       android.R.style.Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth
      

       AlertDialog.THEME_DEVICE_DEFAULT_LIGHT
      

       AlertDialog.THEME_HOLO_LIGHT
      

      它应该可以工作

      【讨论】:

      • 它说已弃用..:/
      • 根本不重要...弃用意味着此功能将不再升级。在快速发展/变化的 Android 世界中,“弃用”通常是一个词