当前位置:   article > 正文

鸿蒙应用开发 | 日期选择器(DatePicker)的功能和用法_

导语:大家好,我是你们的朋友 朋哥,鸿蒙开发已经半年了,了解到了鸿蒙的强大,也遇到了一些鸿蒙的缺陷,但是一个新的系统开发真的是很爽,后续说说感受。

学弟:鸿蒙有没有好的时间选择器呢?

码工:当然有啊,Android有的鸿蒙肯定有。

学弟:开发复杂吗,作为开发者 最好是系统支持的!

码工:鸿蒙在开发日期选择器的时候 只需要一个组件就搞定了。

适用场景:开发一个信息提交界面,页面中有信息采集,需要选择日期提交。
 

好了,下面开始 我们今天的内容 DatePicker......
 

图片


下面我们开始今天的文章,还是老规矩,通过如下几点来说:
 

1,简介 
2,用到的属性 
3,实战

简介

DatePicker主要供用户选择日期。可以设置日期选择格式,可以设置样式,效果如下:
 

图片

用到的属性

DatePicker的共有XML属性继承自:StackLayout
 

属性名称

中文描述

取值

date_order

显示格式,年月日

0,1,2,3,4,5,6,7,8,9,10

day_fixed

日期是否固定

boolean类型

month_fixed

月份是否固定

boolean类型

year_fixed

年份是否固定

boolean类型

max_date

最大日期

long类型

min_date

最小日期

long类型

text_size

文本大小

float类型

normal_text_size

取消选中文本的大小

float类型

selected_text_size

选中文本的大小

float类型

normal_text_color

取消选中文本的颜色

color类型

selected_text_color

选中文本的颜色

color类型

operated_text_color

操作项的文本颜色

color类型

selected_normal_text_margin_ratio

已选文本边距与正常文本边距的比例

float类型

selector_item_num

显示的项数

integer类型

shader_color

着色器颜色

color类型

top_line_element

选中项的顶行

Element类型

bottom_line_element

选中项的底线

Element类型

wheel_mode_enabled

选择轮是否绕行

boolean类型

实战

1,创建一个项目 添加默认 DatePicker

<DatePicker    ohos:id="$+id:date_pick"    ohos:height="match_content"    ohos:width="match_parent"    ohos:text_size="16fp"    />

默认的日期选择器,xml配置属性中直接添加 就能显示效果,日期的格式是年月日。

图片
 

2,设置日期的最小,最大值

<DatePicker  ohos:id="$+id:date_pick1"  ohos:height="match_content"  ohos:width="match_parent"  ohos:text_size="16fp"  ohos:min_date="1627747200"  ohos:max_date="1630339200"  ></DatePicker>

1,设置了最小和最大日期的时间戳
ohos:min_date="1627747200"  // 设置最小日期的时间戳
ohos:max_date="1630339200" // 设置最大日期的时间戳


3,设置固定年月日

<DatePicker  ohos:id="$+id:date_pick2"  ohos:height="match_content"  ohos:width="match_parent"  ohos:text_size="16fp"  ohos:year_fixed="true"  ohos:month_fixed="true"  ohos:day_fixed="true"  ></DatePicker>

1,固定年月日 ,固定当前日期的年月日,设置后年月日无法做滚动选择
ohos:year_fixed="true"  // 固定年
ohos:month_fixed="true"    // 固定月
ohos:day_fixed="true"  // 固定日
 

图片

4,设置日期选择器样式​​​​​​​

  1. <DatePicker
  2. ohos:id="$+id:date_pick3"
  3. ohos:height="match_content"
  4. ohos:width="match_parent"
  5. ohos:text_size="16fp"
  6.     ohos:normal_text_color="#000000" // 设置待选项的颜色
  7.     ohos:normal_text_size="20fp" // 设置待选项的字体大小
  8.     ohos:selected_text_color="#098988" // 设置已选项的字体颜色
  9.     ohos:selected_text_size="25fp" // 设置已选项的字体大小
  10. ohos:operated_text_color="#776655" // 设置操作项的字体颜色
  11. ohos:selected_normal_text_margin_ratio="5" // 设置DatePicker中所选文本边距与普通文本边距的比例
  12. ohos:wheel_mode_enabled="true" // 设置滚轮绕行
  13.     ohos:top_line_element="#9370DB" // 设置选中日期的上边框
  14.     ohos:bottom_line_element="#9370DB" // 设置选中日期的下边框
  15. ohos:shader_color="gray" // 设置着色器颜色
  16. >
  17. </DatePicker>

5,设置当前日期

datePicker.updateDate(2021, 8, 8);// 设置当前日期


6,获取日期选择器的选择日期​​​​​​​

  1. datePicker.setValueChangedListener(
  2. new DatePicker.ValueChangedListener() {
  3. @Override
  4. public void onValueChanged(DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) {
  5. selectedDate.setText("选择的日期:"+String.format("%02d/%02d/%4d", dayOfMonth, monthOfYear, year));
  6. }
  7. }
  8. );


完整代码:
​​​​​

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <DirectionalLayout
  3. xmlns:ohos="http://schemas.huawei.com/res/ohos"
  4. ohos:height="match_parent"
  5. ohos:width="match_parent"
  6. ohos:alignment="center"
  7. ohos:orientation="vertical">
  8. <Text
  9. ohos:height="match_content"
  10. ohos:width="match_parent"
  11. ohos:margin="4vp"
  12. ohos:text_alignment="center|left"
  13. ohos:text_size="16fp"
  14. ohos:text="日期选择器,选择年月日 显示"
  15. />
  16. <DatePicker
  17. ohos:id="$+id:date_pick"
  18. ohos:height="match_content"
  19. ohos:width="match_parent"
  20. ohos:text_size="16fp"
  21. />
  22. <Text
  23. ohos:id="$+id:text_date"
  24. ohos:height="match_content"
  25. ohos:width="match_parent"
  26. ohos:hint="date"
  27. ohos:margin="4vp"
  28. ohos:text_alignment="center|left"
  29. ohos:text_size="16fp">
  30. </Text>
  31. <Text
  32. ohos:height="match_content"
  33. ohos:width="match_parent"
  34. ohos:margin="8vp"
  35. ohos:text_alignment="center|left"
  36. ohos:text_size="16fp"
  37. ohos:multiple_lines="true"
  38. ohos:text="日期选择器,设置最小日期 2021/08/01 最大日期 2021/08/31"
  39. />
  40. <DatePicker
  41. ohos:id="$+id:date_pick1"
  42. ohos:height="match_content"
  43. ohos:width="match_parent"
  44. ohos:text_size="16fp"
  45. ohos:min_date="1627747200"
  46. ohos:max_date="1630339200"
  47. >
  48. </DatePicker>
  49. <Text
  50. ohos:height="match_content"
  51. ohos:width="match_parent"
  52. ohos:margin="4vp"
  53. ohos:text_alignment="center|left"
  54. ohos:text_size="16fp"
  55. ohos:multiple_lines="true"
  56. ohos:text="日期选择器,固定年月日"
  57. />
  58. <DatePicker
  59. ohos:id="$+id:date_pick2"
  60. ohos:height="match_content"
  61. ohos:width="match_parent"
  62. ohos:text_size="16fp"
  63. ohos:year_fixed="true"
  64. ohos:month_fixed="true"
  65. ohos:day_fixed="true"
  66. >
  67. </DatePicker>
  68. <Text
  69. ohos:height="match_content"
  70. ohos:width="match_parent"
  71. ohos:margin="4vp"
  72. ohos:text_alignment="center|left"
  73. ohos:text_size="16fp"
  74. ohos:multiple_lines="true"
  75. ohos:text="日期选择器,设置样式"
  76. />
  77. <DatePicker
  78. ohos:id="$+id:date_pick3"
  79. ohos:height="match_content"
  80. ohos:width="match_parent"
  81. ohos:text_size="16fp"
  82. ohos:normal_text_color="#000000"
  83. ohos:normal_text_size="20fp"
  84. ohos:selected_text_color="#098988"
  85. ohos:selected_text_size="25fp"
  86. ohos:operated_text_color="#776655"
  87. ohos:selected_normal_text_margin_ratio="5"
  88. ohos:wheel_mode_enabled="true"
  89. ohos:top_line_element="#9370DB"
  90. ohos:bottom_line_element="#9370DB"
  91. ohos:shader_color="gray"
  92. >
  93. </DatePicker>
  94. </DirectionalLayout>
  1. package com.example.datepicker.slice;
  2. import com.example.datepicker.ResourceTable;
  3. import ohos.aafwk.ability.AbilitySlice;
  4. import ohos.aafwk.content.Intent;
  5. import ohos.agp.components.DatePicker;
  6. import ohos.agp.components.Text;
  7. public class MainAbilitySlice extends AbilitySlice {
  8. @Override
  9. public void onStart(Intent intent) {
  10. super.onStart(intent);
  11. super.setUIContent(ResourceTable.Layout_ability_main);
  12. // 获取DatePicker实例
  13. DatePicker datePicker = (DatePicker) findComponentById(ResourceTable.Id_date_pick);
  14. int day = datePicker.getDayOfMonth();
  15. int month = datePicker.getMonth();
  16. int year = datePicker.getYear();
  17. // datePicker.updateDate(2021, 8, 8);// 设置当前日期
  18. Text selectedDate = (Text) findComponentById(ResourceTable.Id_text_date);
  19. datePicker.setValueChangedListener(
  20. new DatePicker.ValueChangedListener() {
  21. @Override
  22. public void onValueChanged(DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) {
  23. selectedDate.setText("选择的日期:"+String.format("%02d/%02d/%4d", dayOfMonth, monthOfYear, year));
  24. }
  25. }
  26. );
  27. }
  28. @Override
  29. public void onActive() {
  30. super.onActive();
  31. }
  32. @Override
  33. public void onForeground(Intent intent) {
  34. super.onForeground(intent);
  35. }
  36. }

​​​​​​​老规矩 代码不能少,要不然小伙伴该说我小气了。
源码:
https://gitee.com/codegrowth/haomony-develop/tree/master/DatePicker
 

关注公众号【程序员漫话编程】,后台回复 ”鸿蒙“ ,即可获得上千鸿蒙开源组件。

原创不易,有用就关注一下。要是帮到了你 就给个三连吧,多谢支持。
 

觉得不错的小伙伴,记得帮我 点个赞和关注哟,笔芯笔芯~**

作者:码工
 

有问题请留言或者私信,可以 微信搜索:程序员漫话编程,关注公众号获得更多免费学习资料。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/261945?site
推荐阅读
相关标签