lvgl tabview
时间: 2025-03-26 22:35:04 浏览: 42
### LVGL Tabview 组件使用说明
LVGL 的 `tabview` 是一种用于创建标签页视图的组件,允许用户通过点击不同的选项卡来切换显示的内容。以下是有关如何配置和使用此组件的具体细节。
#### 创建 Tabview 实例
要初始化一个新的 `tabview` 对象并将其添加到父容器中,可以调用函数 `lv_tabview_create(lv_obj_t *par, const lv_obj_t *copy)`[^1]。其中参数 `par` 表示该控件所属的父级对象;而 `copy` 则是一个可选的对象实例用来复制样式和其他属性设置。
```c
/* Create a tab view */
lv_obj_t * tabview;
tabview = lv_tabview_create(parent_container, NULL);
```
#### 添加 Tabs 和 Content Areas
一旦有了 `tabview` 后就可以向里面增加多个 tabs 以及对应的内容区域了。这可以通过连续多次执行如下操作实现:
- 使用 `lv_tabview_add_tab(tabview, "Tab Name")` 来新增加一个带有指定名称的新标签。
- 返回的结果是指向新创建出来的子页面 (content area),可以在上面继续放置其他 UI 控制项如按钮、图片等。
```c
// Add three tabs named "First", "Second" and "Third"
lv_obj_t * tab1 = lv_tabview_add_tab(tabview, "First");
lv_obj_t * tab2 = lv_tabview_add_tab(tabview, "Second");
lv_obj_t * tab3 = lv_tabview_add_tab(tabview, "Third");
// Now you can add objects to the content areas of each tab...
lv_label_set_text(lv_label_create(tab1), "Content on First Tab");
lv_btn_create(tab2); /* Example adding button into second tab's content area */
```
#### 设置滚动行为与方向控制
对于较大的内容区可能需要启用自动滚屏功能以便于浏览全部信息。可通过修改 `style.body.padding.inner` 属性来自定义内边距大小从而影响滑动效果[^2]。另外还可以调整水平/垂直布局模式以适应不同应用场景需求。
```c
static void set_scrollbar_mode(lv_obj_t* obj){
lv_style_t style;
lv_style_init(&style);
// Enable scrollbars when needed.
lv_style_set_body_pad_inner(&style, LV_STATE_DEFAULT, 0);
lv_obj_add_style(obj, LV_OBJ_PART_SCROLLBAR, &style);
}
set_scrollbar_mode(tabview);
```
阅读全文
相关推荐

















