wjppppppp111111 2024-08-31 13:09 采纳率: 25%
浏览 7

如何去除按钮按下的默认动作

想咨询下lvgl里面按钮控件的按下动作能不能去除,目前按下会默认将按钮放大一点以及按钮背景会变浅,因为我想要进行两个按钮拼接成一个,类似于下图,因为没有找到一个按钮如何左边倒角右边不倒角的办法,所以就将两个按钮拼接,但当按下一个按钮后这个按钮就会扩大和颜色变浅,就导致另外一个没有按下的按钮很突兀。有没有人遇见过同样问题,有没有什么解决办法,或者api接口可以去除这个按钮按下的动作。

img

  • 写回答

1条回答 默认 最新

  • 小ᶻZ࿆ 前沿技术领域新星创作者 2024-09-03 18:43
    关注

    该回答引用自GPT-4o,由博主小ᶻZ࿆编写:

    如何去除按钮按下的默认动作:

    在使用LVGL(Light and Versatile Graphics Library)进行开发时,按钮组件在按下时通常会有一个默认的动画效果,例如放大或背景颜色变化。如果你希望取消按钮按下时的这些默认动作,可以尝试以下方法。

    解决方案:

    1. 禁用按钮状态动画

      • 你可以通过设置按钮的样式来禁用默认的按下动画。使用lv_style_set_transform_widthlv_style_set_transform_height以及lv_style_set_bg_color等函数,来明确地设置按钮在不同状态下的表现:
        lv_obj_t *btn = lv_btn_create(lv_scr_act());
        lv_obj_add_style(btn, &style_btn, LV_STATE_PRESSED);
        
        // 禁用状态变化动画
        lv_style_set_transform_width(&style_btn, LV_STATE_PRESSED, 0);
        lv_style_set_transform_height(&style_btn, LV_STATE_PRESSED, 0);
        lv_style_set_bg_color(&style_btn, LV_STATE_PRESSED, lv_color_hex(0x0000));
        
    2. 创建自定义样式

      • 你可以为按钮按下时的状态创建一个自定义样式,确保这个样式不会引发任何的视觉变化。例如,设置按下状态的背景颜色和大小与默认状态一致:
        lv_style_init(&style_btn_pressed);
        lv_style_set_radius(&style_btn_pressed, LV_STATE_PRESSED, 0);
        lv_style_set_bg_color(&style_btn_pressed, LV_STATE_PRESSED, lv_color_hex(0x0000));
        lv_style_set_bg_opa(&style_btn_pressed, LV_STATE_PRESSED, LV_OPA_TRANSP);
        
        lv_obj_add_style(btn, LV_BTN_PART_MAIN, &style_btn_pressed);
        
    3. 处理按钮事件

      • 如果你希望完全自定义按钮按下的行为,可以监听按钮的按下和释放事件,并手动控制按钮的外观变化:
        lv_obj_set_event_cb(btn, event_handler);
        
        void event_handler(lv_obj_t * obj, lv_event_t event) {
            if(event == LV_EVENT_PRESSED) {
                // 自定义按下行为
            }
            else if(event == LV_EVENT_RELEASED) {
                // 自定义释放行为
            }
        }
        

    通过这些方法,你可以取消或自定义按钮在按下时的默认视觉效果,解决拼接按钮时可能遇到的视觉不一致问题。

    如有帮助,可以采纳一下嘛,谢谢~

    评论

报告相同问题?

问题事件

  • 创建了问题 8月31日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?