目录
1. Parts
2. 样式
2.1 修改背景bg
2.2 修改边界border
2.3 修改文本
2.3.1 lv_textarea_add_char
2.3.2 lv_textarea_add_text
2.3.3 lv_textarea_set_text
2.3.4 设定可输入的字符
2.3.5 删除字符
2.3.6 设定字符串最大长度
2.4 滚动条
2.4.1 滚动方向
2.4.2 设置颜色
2.5 密码输入模式
2.6 设置字符串对齐模式
文本框由一个Label和一个光标组合而成,用于文本输入。通过lv_textarea_create创建对象。
static lv_obj_t* obj1 = lv_textarea_create(lv_scr_act());
lv_obj_set_size(obj1, LV_PCT(30), LV_PCT(10));
lv_obj_align(obj1, LV_ALIGN_CENTER, 0, 0);
1. Parts
LV_PART_MAIN: 文本框的背景。类似Button的样式设置。
LV_PART_SCROLLBAR: 文本内容过长时显示的滚动条。
LV_PART_SELECTED: 文本的样式,只能使用 text_color 和 bg_color 样式属性。
LV_PART_CURSOR:字符插入位置的光标。光标的区域始终是当前字符的边界框。可以通过 anim_time 样式属性设置光标的闪烁时间。
LV_PART_TEXTAREA_PLACEHOLDER:文本占位符,文本框独有的部分。可以通过这部分设置文本占位符的样式。
2. 样式
2.1 修改背景bg
lv_obj_set_style_bg_color(obj1, lv_color_hex(0xFF0000), LV_PART_MAIN);
lv_obj_set_style_bg_opa(obj1, LV_OPA_50, LV_PART_MAIN);
2.2 修改边界border
lv_obj_set_style_border_color(obj1, lv_color_hex(0xFF0000), LV_PART_MAIN);
注意这里的蓝色框是选中框。
2.3 修改文本
添加文本的方式有:lv_textarea_add_char/lv_textarea_add_text/ lv_textarea_set_text三种方式。
2.3.1 lv_textarea_add_char
这个API只能添加一个字符(char),功能是在原有的字符串中光标位置添加一个字符
lv_textarea_add_char(obj1, 'a');
2.3.2 lv_textarea_add_text
功能是在原有的字符串中光标位置添加一个字符串
lv_textarea_add_text(obj1, "abc");
2.3.3 lv_textarea_set_text
功能是将文本框的字符串改为新的字符串
lv_textarea_add_text(obj1, "abc");
lv_textarea_set_text(obj1, "def");
2.3.4 设定可输入的字符
通过lv_textarea_set_accepted_chars设置可输入的字符,例如只能输入数字
lv_textarea_set_accepted_chars(obj1, "0123456789");
2.3.5 删除字符
通过lv_textarea_del_char删除光标前的一个字符
lv_textarea_set_text(obj1, "def");
lv_textarea_del_char(obj1);
2.3.6 设定字符串最大长度
通过lv_textarea_set_max_length设置最大长度。
lv_textarea_set_max_length(obj1, 5);
lv_textarea_set_one_line(obj1, true);
lv_textarea_add_text(obj1, "It is a long string, try scroll function");
2.4 滚动条
当字符串很长时,字符串会换行(默认),并增加一个滚动条显示。
2.4.1 滚动方向
通过lv_textarea_set_one_line将字符串显示设置为一行显示,这样滚动条会变为水平方向。
lv_textarea_set_one_line(obj1, true);
lv_textarea_add_text(obj1, "It is a long string, try scroll function");
2.4.2 设置颜色
lv_textarea_set_one_line(obj1, true);
lv_textarea_add_text(obj1, "It is a long string, try scroll function");
lv_obj_set_style_bg_color(obj1, lv_color_hex(0xFF0000), LV_PART_SCROLLBAR);
2.5 密码输入模式
通过lv_textarea_set_password_mode设置为密码输入模式,此时输入的字符会变为点。
lv_textarea_set_password_mode(obj1, true);
可以通过lv_textarea_set_password_show_time设置输入字符明显的时间,参数时间是毫秒为单位。
lv_textarea_set_password_show_time(obj1, 2000);
2.6 设置字符串对齐模式
通过lv_textarea_set_align设置对齐模式,3种模式:LV_TEXT_ALIGN_LEFT、LV_TEXT_ALIGN_RIGHT和LV_TEXT_ALIGN_CENTER。默认是LEFT。