修复Lvgl的roller控件点击位置向上偏移的问题

Lvgl的roller控件点击位置向上偏移的问题

在操作中发现,点击[↓]时,在文字显示区域有效,点击中间的文字偏下一点点仍触发[↓]的效果
[↑]时,点击文字的位置没效果,点击文字偏上才有效

1 怀疑是roller控件的封装问题

在虚拟机跑roller例子,发现点击区域偏移情况如下图
如果将该控件通过函数text_line_space()扩大文字的高度,那么他们的偏移区域更加明显


从图上可以知道,向上偏移大约为,roller选项高度的三分之一
应该是DecemberJanuary距离的一半
现在需要想办法获取roller控件文字垂直距离(多少行距?)

2 找一下文档

查看文档的Text properties小节
在这里插入图片描述

3 程序修改

// 文字字体的大小的高度
int16_t text_font_height = lv_font_get_line_height(lv_obj_get_style_text_font(roller, LV_ROLLER_PART_BG));

// 字符的垂直距离
int16_t text_line_space = lv_obj_get_style_text_line_space(roller, LV_ROLLER_PART_BG);

改这个lvgl\src\lv_widgets\lv_roller.c里面的release_handler函数
只修改13 14 行 其他的不变

static lv_res_t release_handler(lv_obj_t * roller)
{
   
	······

	// 看到函数判断的那一部分
    if(lv_indev_get_type(indev
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值