2016-11-30 6 views
2

Ich habe ein Problem in Nougat (API 24), dass Kalender nicht als Spinner angezeigt wird, aber es funktioniert ordnungsgemäß bis (API 23). ich diesen StilAndroid Nougat zeigt Kalender nicht als Spinner anzeigen

<style name="MyDatePicker" parent="android:Widget.Material.DatePicker"> 
    <item name="android:datePickerMode">spinner</item> 
    <item name="android:calendarViewShown">false</item> 
</style> 
+0

versucht Mutter Thema wechselndes Licht holo oder dunkel –

Antwort

0

bin mit Versuchen Mutter Thema ändern, wie anstelle von Material Thema holo.

<style name="MyDatePicker" parent="android:Theme.Holo.Dark"> 
+0

Hallo Karan Mer holo do't es Arbeit für Nought Kalender nicht gezeigt spinner view – user3836154

+0

versuchen, dies zu xml 'datePickerMode =" spinner "' hinzuzufügen –

0

Der einzige Weg, den ich finde, ist, es durch XML aufzublasen. Ich habe ein DialogFragment und hier ist der Code, der funktioniert für mich:

<?xml version="1.0" encoding="utf-8"?> 
<layout xmlns:android="http://schemas.android.com/apk/res/android"> 
    <LinearLayout 
     android:orientation="vertical" android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <DatePicker 
      android:id="@+id/date_picker" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:datePickerMode="spinner" /> 

     <Button 
      android:id="@+id/ok" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@android:string/ok" 
      style="@style/Cerhis.Widget.AppCompat.Button.Base" /> 

    </LinearLayout> 
</layout> 

public class DatePickerDialogFragment extends BaseDialogFragment { 

    ... 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     binding = DataBindingUtil.inflate(inflater, R.layout.date_picker_dialog, container, false); 

     final Calendar c = Calendar.getInstance(); 
     if(defaultDate != null) 
      c.setTime(defaultDate); 
     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int day = c.get(Calendar.DAY_OF_MONTH); 

     binding.datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() { 
      @Override 
      public void onDateChanged(DatePicker datePicker, int year, int month, int day) { 
       onDateSet(datePicker, year, month, day); 
      } 
     }); 

     if (!futurePossible) 
      binding.datePicker.setMaxDate(new Date().getTime()); 

     binding.ok.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       dismissWithUserInteraction(); 
       if (mListeners != null) { 
        for (DatePickerListener listener : mListeners) 
         listener.onDateSet(selectedDate, dialogId); 
       } 
      } 
     }); 

     return binding.getRoot(); 
    } 

    @NonNull 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     Dialog dialog = new Dialog(getContext(), R.style.Cerhis_Dialog); 
     if(dialog.getWindow() != null) 
      dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
     return dialog; 
    } 

    ... 
} 
Verwandte Themen