2016-08-08 7 views
1

Derzeit sieht mein Datepicker-Dialog so aus. Aber das ist die Theme_Holo_Light_Dialog Thema.Android: DatePicker-Stil mit Holo und AppCompat-Dialog.

enter image description here

Aber ich mag folgende erreichen, mit dem Titel und den Tasten des AppCompat Dialog Stil mit (meinem Verständnis gegeben, es ist das Material Thema), aber mit dem Zentrum Spinnern Aufrechterhaltung noch den Nicht -Material Stil (die Auswahl).

enter image description here

Antwort

0

Gelöst ist das Problem!

Statt die Mühe des Stylen des Dialogfelds zu gehen, habe ich AlertDialog verwendet und das Layout aufgebläht, das die DatePicker enthält.

datepicker.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <DatePicker 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/daily_datepicker" 
     android:layout_centerInParent="true" 
     android:calendarViewShown="false" 
     android:datePickerMode="spinner"/> 
</RelativeLayout> 

und im Code-behind ...

public AlertDialog.Builder displayDailyOverviewDialog() { 
     AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity()); 
     LayoutInflater inflater = getActivity().getLayoutInflater(); 
     View dialogView = inflater.inflate(R.layout.datepicker, null); 

     dialog.setTitle("Set Daily Overview"); 
     dialog.setView(dialogView); 

     DatePicker dp = (DatePicker) dialogView.findViewById(R.id.daily_datepicker); 

     Calendar calendar = Calendar.getInstance(); 
     calendar.set(Calendar.DAY_OF_MONTH, 1); 

     dp.setMinDate(calendar.getTimeInMillis()); 
     dp.setMaxDate(new Date().getTime()); 
     dp.findViewById(Resources.getSystem().getIdentifier("month", "id", "android")).setVisibility(View.GONE); 
     dp.findViewById(Resources.getSystem().getIdentifier("year", "id", "android")).setVisibility(View.GONE); 

     dialog.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
      } 
     }) 
       .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
        } 
       }); 

     dialog.create(); 

     return dialog; 
    } 
Verwandte Themen