在Lollipop之后,DatePicker有一个非常漂亮的日历视图来选择日期.但问题是选择年份.大多数普通人在选择年份时遇到麻烦.他们只是滚动.滚动更改年份需要很长时间.因此我需要在android中打开Datepicker Dialog时首先显示年份选择.
Datepicker通常打开如下:
但它应该从年份选择开始.如下所示:
您可以获得对年视图的引用,然后只需模拟用户单击即可打开它.
dataPicker.getTouchables().get( 0 ).performClick();
更新:如果不清楚,我将解释每一步.您需要先拥有datePicker引用.使用datePicker引用,您可以使用getTouchables()方法获取datePicker组件.组件年份位于第一位,因此需要调用.get(0)来获取对年份的引用.之后只需模拟用户点击即可在开始时打开多年视图,而不是等待用户点击它.
在@MatejVukosav答案上扩展
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { LogUtil.LogToConsole(TAG, "Date picker select"); datePickerDialog.getDatePicker().getTouchables().get(1).performClick(); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { LogUtil.LogToConsole(TAG, "Date picker select post lollipop"); datePickerDialog.getDatePicker().getTouchables().get(0).performClick(); }
然后显示对话框。