2016-07-29 25 views
2

在棒棒堂5.1.1在Nexus 4,並在模擬器上棉花糖6.0.1,該TimePickerDialog在我的應用程序來這樣看:爲什麼TimePicker對話框在Samsung Marshmallow 6.0.1上空白?

然而,在三星S6邊緣運行棉花糖6.0.1,它出現這樣的:

完全空白。

TimePickerDialog被初始化這樣的:

Calendar calendar = Calendar.getInstance(); 
Dialog timeDialog = new TimePickerDialog(androidContext, this, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true); 
timeDialog.setTitle("Set Appointment Time"); 
timeDialog.show(); 
+0

我遇到同樣的問題。 –

回答

3

我不知道爲什麼會這樣,但我已經通過使用cirithere提供的解決方案解決此問題的工作。他正在解決一個不同的問題,但它也解決了這個問題。

提供的解決方案是將TimePicker小部件放入AlertDialog中。我的解決方案如下所示:

private void showTimePicker() { 

    // This is implemented using an AlertDialog and a TimePicker instead of a TimePickerDialog 
    // because the TimePickerDialog implementation on Samsung does not work. 
    final Calendar c = Calendar.getInstance(); 
    c.setTimeInMillis(getInternalTimestamp()); 

    final TimePicker timePicker = new TimePicker(mContext); 
    timePicker.setIs24HourView(DateFormat.is24HourFormat(mContext)); 
    timePicker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY)); 
    timePicker.setCurrentMinute(c.get(Calendar.MINUTE)); 

    final AlertDialog timePickerDialog = new AlertDialog.Builder(mContext) 
      .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // user clicked OK - store the result, perhaps by using a callback: 
        // myCallback.onTimeSet(timePicker, timePicker.getHour(), timePicker.getMinute(); 
       } 
      }) 
      .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }) 
      .setView(timePicker).show(); 
} 

不漂亮,但它的作品(對我而言),它不像我擔心的那樣醜陋。