lvgl esphome 화면 버튼 터치 시 화면 스와이프(탭뷰 이동)를 방지하는 설정입니다.




컨텐츠 정보


본문

● lvgl esphome 화면 버튼 터치 시 화면 스와이프(탭뷰 이동)를 방지하는 설정입니다.

yaml
복사편집
# ====^===============================================================  
# lvgl esphome 화면 버튼 터치 시 화면 스와이프(탭뷰 이동)를 방지하는 설정입니다.
# ※ 이 코드는 반드시 pages: id 하위의 widgets 끝에 위치해야 정상 적용됩니다.
on_load:
  - lambda: |-
      // 전체 화면의 터치 이벤트 방지
      // 기본적으로 LVGL 객체는 클릭(터치) 가능 상태이며,
      // 여기선 터치가 화면 전체에 퍼지는 걸 막습니다.
      lv_obj_clear_flag(lv_scr_act(), LV_OBJ_FLAG_CLICKABLE);

      // 탭바(tabview) 자체는 터치 허용 (클릭만 가능)
      // 아래 버튼 등을 눌러서 탭을 전환할 수 있게 허용합니다.
      lv_obj_add_flag(id(widgets_page_tap)), LV_OBJ_FLAG_CLICKABLE);

      // 탭뷰 안쪽의 콘텐츠 컨테이너를 스크롤 불가능하게 만듭니다.
      // 탭 간 좌우 스와이프 전환(제스처)을 완전히 차단합니다.
      lv_obj_t *content = lv_tabview_get_content(id(widgets_page_tap));
      lv_obj_clear_flag(content, LV_OBJ_FLAG_SCROLLABLE);  // 스와이프 방지
# ====^===============================================================



✅ 요약 기능 설명

항목역할
lv_obj_clear_flag(lv_scr_act(), LV_OBJ_FLAG_CLICKABLE)전체 화면 터치 차단 (불필요한 터치 이벤트 방지)
lv_obj_add_flag(id(widgets_page_tap), LV_OBJ_FLAG_CLICKABLE)탭바 클릭은 허용 (버튼 클릭을 통한 탭 전환 가능)
lv_tabview_get_content(...) + clear_flag(...SCROLLABLE)탭뷰의 좌우 스와이프 제스처 완전 차단 (정확한 버튼 기반 제어만 허용)

???? 팁
이 방식은 탭 전환을 버튼이나 탭바 아이템 클릭으로만 제어할 수 있게 만들어서, 불안정한 스와이프 오동작 방지에 최적입니다.
특히 버튼 방식으로 탭을 전환하면 명확한 클릭 이벤트 처리 + UI 안정성이 매우 향상됩니다.
상위 컨테이너가 클릭 가능한 상태면 LV_OBJ_FLAG_CLICKABLE로도 터치가 전파되므로,
반드시 스크린 루트인 lv_scr_act() 기준에서 플래그를 지워야 합니다.
필요하시면 버튼으로 탭 전환하는 예제나, 탭바 버튼에 아이콘 삽입 예시도 도와드릴게요!
지금 구성이 거의 LVGL 터치 처리 베스트 프랙티스입니다. 멋진 적용이에요 ????









뷰PDF add1,add2



관련자료

댓글 0
등록된 댓글이 없습니다.



♥간단_메모글♥


최근글


새댓글



PHP 안에 HTML ☞ 홈페이지 화면갱신 시간은 ♨
▶ 2025-04-06 06:33:39

오늘의 홈 현황


  • 현재 접속자♨ 275 명
  • 오늘 가입자※ 0 명
  • 어제 가입자※ 0 명
  • 주간 가입자※ 9 명
  • 오늘 방문자 1,474 명
  • 어제 방문자 3,877 명
  • 최대 방문자 13,042 명
  • 전체 방문자 5,207,648 명
  • 전체 게시물※ 8,961 개
  • 전체 댓글수※ 25,557 개
  • 전체 회원수 11,576 명

QR코드


☞ QR코드 스캔은 kakao앱 자체 QR코드

알림 0








최신글↑