2017-04-20 15 views
0

これは非常に奇妙です、私は自分のカスタムダイアログにtimePickerを持っています、問題はそれがアンドロイドのいくつかのバージョンでいいですが、アンドロイド5.0.2で、このような色:あなたが見ることができるようアンドロイド - カスタムダイアログはビューの背景色を変更します

enter image description here

は、時計の背景が変更されたが、私は何も変更を加えていないました。

final Dialog dialog = new Dialog(SabadKharid_s1.this, R.style.DialogStyler2); 
      dialog.setContentView(R.layout.dialogtime); 

      timePicker = (TimePicker) dialog.findViewById(R.id.timePicker); 
      timePicker.setIs24HourView(true); 
      WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
      lp.copyFrom(dialog.getWindow().getAttributes()); 
      lp.width = WindowManager.LayoutParams.MATCH_PARENT; 
      lp.height = WindowManager.LayoutParams.WRAP_CONTENT; 
      dialog.show(); 
      dialog.getWindow().setAttributes(lp); 

これは私が使用してスタイルです:

   <style name="DialogStyler2" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 
    <item name="android:windowNoTitle">true</item> 
</style> 

はどうすればこの問題を解決することができますか?

+0

がhttp://www.materialdoc.com/time-pickers/を試すのに役立ちます希望 –

答えて

0

これまでに画面にポップアップしたものは...ダイアログにはデフォルトテーマが設定されている可能性があります。 あなたのポップアップにカスタムテーマを使用してみてください...背景色を変更したり、ポップアップやレイアウトセットの親の背景をカスタム表示に設定したりしますandroid:background="@andrid:color/transparent"

0

時間を使った理由は考えられませんあなたはただMaterial Time Pickersを直接使うことができるダイアログでピッカーを選ぶことができます。

これはもっと簡単な解決策として使用できます。 https://github.com/wdullaer/MaterialDateTimePicker

TimePickerDialog timePickerDialog = TimePickerDialog.newInstance(
      new TimePickerDialog.OnTimeSetListener() { 
       @Override 
       public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute, int second) { 
        //Do your thing 
    ); 
    timePickerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { 
     @Override 
     public void onCancel(DialogInterface dialogInterface) { 
      //do your thing for cancel event 
     } 
    }); 
    timePickerDialog.setAccentColor(ContextCompat.getColor(mContext, R.color.colorPrimary)); 

    timePickerDialog.show(getFragmentManager(), TAG); 
0

TimePickerDialogを使用してみてください。

// Initialize time picker 
    Calendar c = Calendar.getInstance(); 
    int curHour = c.get(Calendar.HOUR_OF_DAY); 
    int curMinute = c.get(Calendar.MINUTE); 
    boolean is24HourView = true; 

    // Construct time picker dialog 
    TimePickerDialog dialogTimePicker = new TimePickerDialog(this, 
      new TimePickerDialog.OnTimeSetListener() { 

       @Override 
       public void onTimeSet(TimePicker view, int hourOfDay, int minute) 
       { 

        // Do something 
       } 
      }, curHour, curMinute, is24HourView); 


    // Show time picker dialog 
    dialogTimePicker.setTitle("Time Picker"); 
    dialogTimePicker.show(); 

これは〜

関連する問題