Problem with redrawing,Not all borders(not LV_BORDER_SIDE_FULL)

lv_style_set_border_side(&list_style, LV_STATE_DEFAULT, LV_BORDER_SIDE_RIGHT);

When the bottom layer has components displayed, the color will fade when redrawing,see blow:

void init_list_style(void)

    lv_style_set_bg_color(&list_style, LV_STATE_FOCUSED, LV_COLOR_MAKE(128, 128, 128));
    lv_style_set_bg_color(&list_style, LV_STATE_DEFAULT, LV_COLOR_MAKE(48, 48, 48));
    lv_style_set_bg_opa(&list_style, LV_STATE_DEFAULT, LV_OPA_70);
#if 1
    lv_style_set_border_width(&list_style, LV_STATE_DEFAULT, 14);
    **lv_style_set_border_side(&list_style, LV_STATE_DEFAULT, LV_BORDER_SIDE_RIGHT);**
    lv_style_set_border_opa(&list_style, LV_STATE_DEFAULT, LV_OPA_COVER);
    lv_style_set_border_color(&list_style, LV_STATE_DEFAULT, LV_COLOR_MAKE(32, 32, 32));
    lv_style_set_border_color(&list_style, LV_STATE_FOCUSED, LV_COLOR_MAKE(64, 64, 64));
    lv_style_set_value_font(&list_style, LV_STATE_DEFAULT, &arial_bd_20);
    lv_style_set_value_opa(&list_style, LV_STATE_DEFAULT, LV_OPA_TRANSP);
    lv_style_set_value_opa(&list_style, LV_STATE_CHECKED, LV_OPA_COVER);
    lv_style_set_value_color(&list_style, LV_STATE_DEFAULT, LV_COLOR_YELLOW);
    lv_style_set_value_align(&list_style, LV_STATE_DEFAULT, LV_ALIGN_IN_RIGHT_MID);
    lv_style_set_value_ofs_x(&list_style, LV_STATE_DEFAULT, -1);
    lv_style_set_value_str(&list_style, LV_STATE_DEFAULT, "●");

lv_obj_t * create_list(int16_t x, uint8_t index, uint8_t max, const lv_img_dsc_t *pImg[])
    #define ML_Y  192
    uint8_t config = menu_config[index];
    int16_t w = (max==4) ? (100) : (52);

    lv_obj_t * parent = lv_cont_create(lv_scr_act(), NULL);
    lv_obj_set_pos(parent, x, ML_Y - max * 32);
    lv_obj_set_size(parent, w, 32 * max);
    lv_obj_set_style_local_bg_opa(parent, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP);
    lv_cont_set_layout(parent, LV_LAYOUT_COLUMN_MID);
    //lv_cont_set_fit(parent, LV_FIT_TIGHT);

    lv_group_add_obj(kb_group, parent);
    lv_obj_set_event_cb(parent, list_sel_event_handler);

    for (uint8_t i = 0; i < max; i++)
        lv_obj_t *obj_bgd1 = lv_obj_create(parent, NULL);
        lv_obj_set_size(obj_bgd1, w, 32);
        lv_obj_add_style(obj_bgd1, LV_OBJ_PART_MAIN, &list_style);
        lv_obj_set_user_data(obj_bgd1, &index_tb[i]);
        if (config & 0x80)
            if (config & (1 << i))
                obj_bgd1->state = LV_STATE_CHECKED;
            if (i==0)
                obj_bgd1->state |= LV_STATE_FOCUSED;
                obj_list_focus = obj_bgd1;
        else if (i == config)
            obj_bgd1->state = LV_STATE_FOCUSED | LV_STATE_CHECKED;
            obj_list_focus = obj_bgd1;
        if(pImg == NULL)
            lv_obj_t *label = lv_label_create(obj_bgd1, NULL);
            lv_obj_set_style_local_text_font(label, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, &arial_bd_14);
            lv_label_set_text_fmt(label, "%d%%", 25*i);
            lv_obj_align(label, NULL, LV_ALIGN_CENTER, -7, 0); //Must be put behind
            lv_obj_t * img1 = lv_img_create(obj_bgd1, NULL);
            lv_img_set_src(img1, pImg[i]);
            lv_obj_align(img1, NULL, LV_ALIGN_CENTER, -7, 0); //Must be put behind

    menu_index = index;

    return parent;

Do you have 2 frame buffer or the “bottom layer” means a layer in LVGL?

How do you mean fade? From the image I can’t see what the issue really is. :frowning:

fade: image


one framebuffer,but The following controls will move in full screen in real time image

When image and image overlap,then move away,there will be color loss,like this image

There was an issue with screen redraw when images are moved. Please try with the latest version.

If it’s still not working please send a minimal code to reproduce the issue.