在 LVGL 8.2 中,选项卡视图(Tabview)是一个容器类部件,用于创建多标签页面布局。以下是适配 LVGL 8.2 版本的 Tabview 核心 API 和用法说明:
1. 核心函数列表
创建函数
lv_tabview_create(lv_obj_t *parent, lv_dir_t tab_pos, lv_coord_t tab_size)
创建 Tabview 对象。
参数:parent
: 父容器(若为NULL
则放在活动屏幕)tab_pos
: 标签位置 (LV_DIR_TOP
/LV_DIR_BOTTOM
/LV_DIR_LEFT
/LV_DIR_RIGHT
)tab_size
: 标签栏高度/宽度(根据方向)
操作函数
-
lv_tabview_add_tab(lv_obj_t *tabview, const char *name)
添加新标签页,返回页面容器对象(lv_obj_t*
)。
参数:tabview
: 目标 Tabview 对象name
: 标签页标题
-
lv_tabview_set_act(lv_obj_t *tabview, uint16_t id, lv_anim_enable_t anim)
切换到指定索引的标签页。
参数:id
: 目标标签页索引(从 0 开始)anim
: 是否启用切换动画 (LV_ANIM_ON
/LV_ANIM_OFF
)
-
lv_tabview_clean_tab(lv_obj_t *tabview)
删除所有标签页(保留 Tabview 容器)。
属性获取
-
uint16_t lv_tabview_get_tab_act(lv_obj_t *tabview)
获取当前活动标签页的索引。 -
lv_obj_t* lv_tabview_get_content(lv_obj_t *tabview)
获取 Tabview 的内容容器(用于自定义布局)。
2. 基础用法示例
/* 创建 Tabview,标签栏在顶部,高度 40px */
lv_obj_t *tabview = lv_tabview_create(lv_scr_act(), LV_DIR_TOP, 40);
/* 添加三个标签页 */
lv_obj_t *tab1 = lv_tabview_add_tab(tabview, "Settings");
lv_obj_t *tab2 = lv_tabview_add_tab(tabview, "Data");
lv_obj_t *tab3 = lv_tabview_add_tab(tabview, "Help");
/* 在第一个标签页添加内容 */
lv_obj_t *label = lv_label_create(tab1);
lv_label_set_text(label, "Configuration Options");
/* 切换到第二个标签页(索引 1)带动画 */
lv_tabview_set_act(tabview, 1, LV_ANIM_ON);