2016-09-11 8 views
1

DatePickerDialogの右側に余分なスペースがあり、Android M & N個のビルドでのみ表示されます。 Lベースのビルドでは見られません。ここではスクリーンショットです:DatePickerDialog(Android M&Nに表示される)の余分なスペースを削除するにはどうすればよいですか?

は、誰もがこの問題に直面していますか?

これはDatePickerFragmentの実装です:

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { 

    public static DatePickerFragment newInstance(int day, int month, int year) 
    { 
     DatePickerFragment frag = new DatePickerFragment(); 
     Bundle args = new Bundle(); 
     args.putInt("day", day); 
     args.putInt("month", month); 
     args.putInt("year", year); 
     frag.setArguments(args); 
     return frag; 
    } 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) 
    { 
     int year = getArguments().getInt("year"); 
     int month = getArguments().getInt("month"); 
     int day = getArguments().getInt("day"); 
     DatePickerDialog datePickerDialog =new DatePickerDialog(getActivity(), this, year, month, day); 
     datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000); 
     return datePickerDialog; 
    } 

    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) 
    { 
     try 
     { 
      DatePickerDialogListener listener = (DatePickerDialogListener)getActivity(); 
      listener.onFinishDatePickDialog(year, monthOfYear + 1, dayOfMonth); 
     } 
     catch (Exception ex) 
     { 
      ex.printStackTrace(); 
     } 
    } 

    // 1. Defines the listener interface with a method passing back data result. 
    public interface DatePickerDialogListener { 
     void onFinishDatePickDialog(int year, int monthOfYear, int dayOfMonth); 
    } 

} 

そしてここでは、アンドロイド用のコンポーネントを持っているスタイルシートがあります:datePickerDialogTheme

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="android:windowContentTransitions">true</item> 
     <item name="colorControlNormal">@color/colorAccent</item> 
     <item name="colorControlActivated">@color/colorAccent</item> 
     <item name="colorControlHighlight">@color/colorAccent</item> 
     <item name="textColorError">@android:color/holo_red_dark</item> 
     <item name="android:timePickerDialogTheme">@style/AlertDialogCustom</item> 
     <item name="android:datePickerDialogTheme">@style/AlertDialogCustom</item> 
     <item name="android:alertDialogTheme">@style/AlertDialogCustom</item> 
    </style> 

    <style name="AlertDialogCustom" parent="android:Theme.Material.Light.Dialog.Alert"> 
     <item name="android:colorPrimary">@color/colorPrimary</item> 
     <item name="android:colorAccent">@color/colorAccent</item> 
    </style> 

注:問題ではありません色を変更するためにスタイルを使用しない場合に表示されます。

+0

どのように見えるかだが助けてくれましたhttps://stackoverflow.com/a/41456791/2452029 – Lanitka

答えて

1

私は修正を見つけました。それは私のスタイルの問題でした。親をTheme.Material.Light.Dialog.Alertの代わりにの代わりに Theme.AppCompat.Light.Dialog.Alertに更新しました。

またアンドロイド:colorAccentcolorAccentまたは他のカレンダーセレクタの色に変更する必要があります。ここのグリーン

まま、最終的なスタイルは、このようなダイアログを作成する

<style name="AlertDialogCustom" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 
関連する問題