Description
- i have a page that i want to scroll horizontally
- the page contain several cont, with auto layout
- cont contain 2 labels each
What MCU/Processor/Board and compiler are you using?
STM32
What do you experience?
i create a page in wish i create 3 containers.
In each container i put 2 labels.
i set the embeeded container to auto fit horizontally as label size inside them can vary
to be able to scroll, i put inside cont callback function a lv_page_focus to make the item visible when selected
if i disable the horizontal autofit TIGHT the hardfault disapear.
/You code here/
//INSIDE CALLBACK
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if( event == LV_EVENT_FOCUSED){
lv_page_focus(page, obj, LV_ANIM_OFF);
<<<<<<<<<<<<<<<<
// create container
btn->cont = lv_cont_create(parent, NULL);
lv_cont_set_fit2(btn->cont, LV_FIT_TIGHT, LV_FIT_NONE); <<< HARDFAULT IS THIS
lv_obj_set_style_local_bg_color(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x40, 0x40, 0x40));
lv_obj_set_style_local_bg_color(btn->cont, LV_CONT_PART_MAIN, LV_STATE_FOCUSED, LV_COLOR_MAKE(0x00, 0x30, 0x30));
lv_obj_set_style_local_outline_width(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0);
lv_obj_set_style_local_outline_width(btn->cont, LV_CONT_PART_MAIN, LV_STATE_FOCUSED, 0);
lv_obj_set_style_local_border_side(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_BORDER_SIDE_RIGHT);
lv_obj_set_style_local_border_width(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 2);
lv_obj_set_style_local_border_width(btn->cont, LV_CONT_PART_MAIN, LV_STATE_FOCUSED, 1);
lv_obj_set_style_local_border_color(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(100, 100, 100));
lv_obj_set_style_local_border_color(btn->cont, LV_CONT_PART_MAIN, LV_STATE_FOCUSED, LV_COLOR_MAKE(0, 150, 150));
lv_obj_set_style_local_radius(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0);
lv_obj_set_style_local_radius(btn->cont, LV_CONT_PART_MAIN, LV_STATE_FOCUSED, 0);
lv_obj_set_style_local_outline_color(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
lv_obj_set_style_local_outline_color(btn->cont, LV_CONT_PART_MAIN, LV_STATE_FOCUSED, LV_COLOR_BLUE);
lv_obj_set_style_local_pad_all(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT,0);
lv_obj_set_style_local_pad_left(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT,5);
lv_obj_set_style_local_pad_right(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT,5);
//lv_obj_set_style_local_pad_left(btn->cont, LV_CONT_PART_MAIN, LV_STATE_FOCUSED,8);
//lv_obj_set_style_local_pad_right(btn->cont, LV_CONT_PART_MAIN, LV_STATE_FOCUSED,8);
lv_obj_set_style_local_pad_top(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT,4);
lv_obj_set_style_local_pad_bottom(btn->cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT,4);
///lv_obj_align(btn->cont, parent, LV_ALIGN_CENTER, 0, 0);
// create btn name label
btn->lbl_name = lv_label_create(btn->cont, NULL); // create label
lv_label_set_text(btn->lbl_name, label); // set text
lv_obj_add_style(btn->lbl_name, LV_LABEL_PART_MAIN, &labelStyle); // add label style
lv_obj_align(btn->lbl_name, btn->cont, LV_ALIGN_CENTER, 0, -12); // align center
lv_obj_set_style_local_text_color(btn->lbl_name, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x00, 200, 200));
lv_obj_set_style_local_text_color(btn->lbl_name, LV_LABEL_PART_MAIN, LV_STATE_FOCUSED, LV_COLOR_MAKE(0x10, 0x10, 0x10));
// label value
btn->lbl_val = lv_label_create(btn->cont, NULL); // create
lv_label_set_text(btn->lbl_val, "100 %"); // set temporary text
lv_obj_add_style(btn->lbl_val, LV_LABEL_PART_MAIN, &style_labelValues); // add style
lv_obj_align(btn->lbl_val, btn->cont, LV_ALIGN_CENTER, 0, 20); // align
lv_obj_align_origo(btn->cont, page, LV_ALIGN_IN_RIGHT_MID, 0, 0);
// callback & events
lv_obj_set_event_cb(btn->cont, cbfunction); // add callback function for events
lv_group_add_obj(g, btn->cont); // add object to group
Screenshot and/or video
If possible, add screenshots and/or videos about the current issue.