有时在使用LVGL的Tabview时,不想标签平铺,就像图里面的“智能照明”和“智能开关”这两个标签,希望能靠近左侧,后侧想放些按钮的组件,这时应该怎么来设置呢,操作起来也很简单,直接上代码吧:
static lv_obj_t* tv;
static lv_obj_t* tv_light;
static lv_obj_t* tv_switch;
tv = lv_tabview_create(parent, LV_DIR_TOP, LV_DPI_DEF / 3);
lv_obj_set_pos(tv, HOME_PAD_LEFT, HOME_MENU_HEIGHT + MENU_TV_DISTANCE);
lv_obj_set_size(tv, HOME_TV_WIDTH, LV_VER_RES - HOME_MENU_HEIGHT - MENU_TV_DISTANCE);
tv_light = lv_tabview_add_tab(tv, "智能照明");
tv_switch = lv_tabview_add_tab(tv, "智能开关");
lv_obj_set_style_bg_color(tv, lv_color_make(0x00, 0x00, 0x00), 0);
lv_obj_t* tab_btns = lv_tabview_get_tab_btns(tv);
lv_obj_set_size(tab_btns, lv_pct(100), TV_BTNS_HEIGHT);
//本地样式修改背景色
lv_obj_set_style_bg_color(tab_btns, lv_color_make(0x00, 0x00, 0x00), 0);
lv_obj_set_style_bg_color(tab_btns, lv_color_make(0x00, 0x00, 0x00), LV_PART_ITEMS | LV_STATE_CHECKED);
//本地样式修改透明度
lv_obj_set_style_bg_opa(tab_btns, LV_OPA_100, LV_PART_ITEMS | LV_STATE_CHECKED);
//修改选中时边框的颜色
lv_obj_set_style_border_color(tab_btns, lv_color_make(0x00, 0x00, 0x00), LV_PART_ITEMS | LV_STATE_CHECKED);
//修改选中时边框的颜色透明度
lv_obj_set_style_border_opa(tab_btns, LV_OPA_100, LV_PART_ITEMS | LV_STATE_CHECKED);
//本地样式修改选中时的文字颜色
lv_obj_set_style_text_color(tab_btns, lv_color_make(0xc2, 0xa2, 0x66), LV_PART_ITEMS | LV_STATE_CHECKED);
lv_obj_set_style_text_font(tab_btns, &lv_font_simsun_22, LV_PART_ITEMS | LV_STATE_CHECKED);
// //本地样式修改未选中时的文字颜色
lv_obj_set_style_text_color(tab_btns, lv_color_make(0xFF, 0xFF, 0xFF), 0);
lv_obj_set_style_text_font(tab_btns, &lv_font_simsun_18, 0);
// 设置标签位置
lv_obj_set_style_pad_right(tab_btns, LV_HOR_RES / 2, 0);
最重要的其实就是标红的这句了。
| 留言与评论(共有 0 条评论) “” |