我试图为我的应用程序创建一个时间选择器......当将主题设置为----------------。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.R.style.Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth
与
AlertDialog.THEME_DEVICE_DEFAULT_LIGHT
或
AlertDialog.THEME_HOLO_LIGHT
应该可以
我知道这是个老问题,但这里有一个解决方案。
你可以在 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);