如何使用Material Design选择时间?

5
如何使用Material 1.3.0-alpha01选择时间:我想要寻找下面的屏幕截图所示的时间选择器,这个我在material io上找到了。
我尝试了日期选择器material time picker并且它可以工作。
Material日期选择器。
//Creating a MaterialDatePicker.Builder instance that gives us a single date selector.
val builder : MaterialDatePicker.Builder<*> = MaterialDatePicker.Builder.datePicker() // 1
//Building-up the MaterialDatePicker by calling a builder.build function
val picker : MaterialDatePicker<*> = builder.build()  // 2
//Display the Material Date Picker.
picker.show(requireActivity().supportFragmentManager, picker.toString())   // 3

简单的时间选择器

  val cal = Calendar.getInstance()
            val timeSetListener = TimePickerDialog.OnTimeSetListener { _, hour, minute ->
                cal.set(Calendar.HOUR_OF_DAY, hour)
                cal.set(Calendar.MINUTE, minute)
                //textView.text = SimpleDateFormat("HH:mm").format(cal.time)
            }
            val time = TimePickerDialog(context, timeSetListener, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), true)
            time.setTitle("")
            time.show()
2个回答

15

您可以使用与Material Components库引入的新MaterialTimePicker

注意:此代码需要至少版本1.3.0-alpha03

import com.google.android.material.timepicker.MaterialTimePicker

val materialTimePicker = MaterialTimePicker.Builder()
    .setTimeFormat(TimeFormat.CLOCK_24H)
    .build()

materialTimePicker.addOnPositiveButtonClickListener {
    val newHour: Int = materialTimePicker.hour
    val newMinute: Int = materialTimePicker.minute
}

输入图片说明

使用相同的代码:

val materialTimePicker = MaterialTimePicker.Builder()
    .setTimeFormat(TimeFormat.CLOCK_12H)
    .build()

materialTimePicker.show(supportFragmentManager, "fragment_tag")

输入图像描述


5

MATERIAL TIME PICKER 若要使用材料时间选择器,请将以下依赖项添加到项目的build.gradle文件中:

   implementation 'com.google.android.material:material:1.3.0-alpha02'

使用Material 1.3.0-alpha02的Kotlin时间选择器

val timePickerDialog = MaterialTimePicker.newInstance();
            timePickerDialog.show(requireActivity().supportFragmentManager, "fragment_tag");
            // Types of formats for the time pickeer
            timePickerDialog.setTimeFormat(TimeFormat.CLOCK_12H)//CLOCK_24H
            timePickerDialog.setListener { dialog: MaterialTimePicker ->
                val newHour = dialog.hour
                val newMinute = dialog.minute
}

它在Java中可用吗? - Adnan haider
它是Kotlin而不是Java,并且仅显示日期选择器而不是时间选择器。 - Adnan haider
1
参考此链接:https://github.com/material-components/material-components-android/blob/master/catalog/java/io/material/catalog/timepicker/TimePickerMainDemoFragment.javahttps://stackoverflow.com/questions/33553241/getting-the-material-design-timepicker-android - Bolt UIX
谢谢,可以在时间后面添加上午或下午吗? - Adnan haider
https://dev59.com/TGgu5IYBdhLWcg3wWl4q - Bolt UIX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接