android material组件库日期选择和时间选择器的使用方法
简单的封装下material组件里的日期选择器和时间选择器的使用方法
效果
代码
需要添加material组件库的依赖(不过后面新版本android studio创建的新项目都会有此依赖了...)
implementation 'com.google.android.material:material:1.4.0'
private fun showtimedialog(startdate: date? = null) { val builder = materialtimepicker.builder() //设置时间格式为24小时制 builder.settimeformat(timeformat.clock_24h) startdate?.let { builder.sethour(it.hours) builder.setminute(it.minutes) } val timepicker = builder.build() timepicker.apply { // 设置事件监听器(当用户选择日期时触发) addonpositivebuttonclicklistener { val hour = timepicker.hour val mintue = timepicker.minute val hourstr = if (hour>9) hour.tostring() else "0$hour" val mintuestr = if (mintue>9) hour.tostring() else "0$mintue" val timestrtext = "$hourstr:$mintuestr" //todo 选择时间后的操作 } } timepicker.show(supportfragmentmanager, "date_picker_tag") }
private fun showdatedialog(startdate: date? = null) { // 创建 material 日历选择器实例 val builder = materialdatepicker.builder.datepicker() //设置默认选择数据 startdate?.let { builder.setselection(it.time) } // 构建 material 日历选择器 val materialdatepicker = builder.build() materialdatepicker.apply { // 设置事件监听器(当用户选择日期时触发) addonpositivebuttonclicklistener { val date = date(it) //todo 选择时间后的操作 } } materialdatepicker.show(supportfragmentmanager, "date_picker_tag") }
扩展:
android textview自动缩放能够完整显示出一行
app开发中,需要textview可以在不同的屏幕大小要完整显示出文字,而不是显示省略号
可以使用以下代码,让textview字体实现自适应(不过具体算法已经实现了,我们只需要设置下即可实现效果)
//设置最大行数为1行(在xml中设置也可) tvphotorecovery.maxlines = 1 textviewcompat.setautosizetexttypewithdefaults(tvphotorecovery, textviewcompat.auto_size_text_type_uniform) //设置字体大小范围为12sp-22sp textviewcompat.setautosizetexttypeuniformwithconfiguration(tvphotorecovery, 12, 22, 1, typedvalue.complex_unit_sp)
setautosizetexttypeuniformwithconfiguration
方法的4个参数说明:
setautosizetexttypeuniformwithconfiguration( textview textview, int autosizemintextsize, //字体最小数值 int autosizemaxtextsize, //字体最大数值 int autosizestepgranularity,//自动适应的步长(简单理解就是在最小和最大范围之间,从最小数值递增步长[n]来计算最符合的字体大小) int unit //字体单位,sp就可以 )
到此这篇关于android material组件库(日期选择和时间选择器)基本使用的文章就介绍到这了,更多相关android material组件库内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论