Android

关注公众号 jb51net

关闭
首页 > 软件编程 > Android > Android Material组件库

Android Material组件库日期选择和时间选择器的使用方法

作者:Stars-one

这篇文章主要介绍了Android Material组件库(日期选择和时间选择器)基本使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

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组件库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文