一. LVGL GUI页面控件的概念
一个页面彼此包含两个容器:
- 背景
- 可滚动的顶部
二. LVGL GUI页面小部件和样式
页面的主要部分称为页面的LV_PAGE_PART_BG背景。它使用所有典型的背景样式属性。使用填充会增加侧面的空间。
可以通过LV_PAGE_PART_SCROLLABLE零件引用可滚动对象。它还使用所有典型的背景样式属性和填充来增加侧面的空间。
LV_PAGE_PART_SCROLLBAR是绘制滚动条的背景的虚拟部分。使用所有典型的背景样式属性,使用size设置滚动条的宽度,并使用pad_right和pad_bottom设置间距。
LV_PAGE_PART_EDGE_FLASH当页面无法进一步沿该方向滚动时,它也是背景的虚拟部分,在侧面绘制半圆。使用所有典型的背景属性。
三. LVGL GUI页面控件的使用
用这个函数设置页面宽度lv_obj_set_width(page, 100)
如果在页面上创建了一个子代,它将被自动移动到可滚动容器中。如果可滚动容器变大,则可以通过拖动来滚动背景(如智能手机上的列表)。
默认情况下,滚动条LV_FIT_MAX在所有方向上都适合。这意味着当子代在背景中时,可滚动大小将与背景的大小相同(减去填充)。但是,当将对象放置在背景之外时,可滚动大小将增加以使其包含其中。
1. 滚动条(Scrollbars)
可以根据以下几种策略显示滚动条:
- LV_SCRLBAR_MODE_OFF 从不显示滚动条
- LV_SCRLBAR_MODE_ON 一律显示滚动条
- LV_SCRLBAR_MODE_DRAG 拖动页面时显示滚动条
- LV_SCRLBAR_MODE_AUTO 当可滚动容器的大小足以滚动时显示滚动条
- LV_SCRLBAR_MODE_HIDE 暂时隐藏滚动条
- LV_SCRLBAR_MODE_UNHIDE 取消隐藏以前隐藏的滚动条。也恢复原始模式
滚动条显示策略可以通过以下方式更改lv_page_set_scrlbar_mode(page, SB_MODE)。默认值为LV_SCRLBAR_MODE_AUTO。
2. 胶水对象(Glue object)
通过lv_page_glue_obj(child, true)将子对象粘到页面上
3. 焦点对象(Focus object)
通过这个函数来启动获取焦点lv_page_focus(page, child, LV_ANIM_ONO/FF)
4. 手动导航(Manual navigation)
通过这两个函数来手动导航
lv_page_scroll_hor(page, dist)
lv_page_scroll_ver(page, dist)
5. 边缘闪烁(Edge flash)
通过这个函数来开启边缘闪烁lv_page_set_edge_flash(list, en)
6. 滚动传播(Scroll propagation)
如果页面是在另一个可滚动元素(如另一个页面)上创建的,并且该页面无法进一步滚动,则滚动可以传播到父对象,以继续在父对象上滚动。通过这个函数设置lv_page_set_scroll_propagation(list, true)
7. 清空界面(Clean the page)
通过这个函数清空界面lv_page_clean(page)
8. 滚动函数(Scrollable API)
-
lv_page_get_scrl()
-
lv_page_set_scrl_fit/fint2/fit4()
-
lv_page_set_scrl_width()
-
lv_page_set_scrl_height()
-
lv_page_set_scrl_fit_width()
-
lv_page_set_scrl_fit_height()
-
lv_page_set_scrl_layout()
好了,完结了,更多精彩继续戳↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓