Description
Hi Team,
i am facing an issue with screens.
i have 2 screens i.e., screen1 and screen2
from screen 1 i am passing values to other function here i am checking response code coming from my server
if response code is 200 then i am redirecting to screen2 using screen2();
The screen2 is overlapping on screen1. please find the screen shot attached.
What MCU/Processor/Board and compiler are you using?
ARM
What LVGL version are you using?
Version 7
What do you want to achieve?
i want to achieve if i redirect to new screen want to clear old screen and replace new screen
Screenshot and/or video
Thanks in Advance.
You should put a background on the second screen or delete/hide the first one.
Background means wallpaper?
i am setting bg color like below
static lv_style_t style_bg;
lv_style_init(&style_bg);
lv_style_set_bg_color(&style_bg,LV_STATE_DEFAULT, LV_COLOR_BG);
**lv_obj_add_style(lv_scr_act(),LV_OBJ_PART_MAIN, &style_bg);**
and how to hide/delete first screen after second screen replaced?
Use lv_obj_set_hidden
or lv_obj_del
, respectively. (Make sure that you don’t delete the active screen, i.e. lv_scr_act()
.)
where should i call this functions lv_obj_set_hidden
or lv_obj_del
in my First screen or my second screen
and what is the parameter should i pass in lv_obj_set_hidden
or lv_obj_del
Please ensure you read the documentation to gain an understanding of how these functions work.
Screen Overlapping issue is fixed by adding wallpaper for each screen but got an other issue
Some unwanted objects like button or text area are showing at top left corner (after screen redirected 2 screen the screen is behaving weird)
i added lines as following
My first screen
lv_obj_t * scr=lv_obj_create(NULL,NULL);
lv_scr_load(scr);
My second screen
lv_obj_t * prev=lv_scr_act();
lv_obj_t * second=lv_obj_create(NULL,NULL);
lv_scr_load(second);
lv_obj_del(prev);
and i used lv_scr_act() for every object i created in both screens. For Example
Button:
lv_obj_t * btn1 = lv_btn_create(lv_scr_act(), NULL);
lv_obj_set_event_cb(btn1, event_handler);
lv_obj_align(btn1, NULL, LV_ALIGN_CENTER, 0, 0);
label = lv_label_create(btn1, NULL);
lv_label_set_text(label, "Login");
when i switch to second the screen i loaded screen as below
lv_obj_t * prev=lv_scr_act();
lv_obj_t * second=lv_obj_create(NULL,NULL);
lv_scr_load(second);
lv_obj_del(prev);
But some unwanted objects like button or text area are showing at top left corner
if possible can you please give a clear example for switching between two screens.
Thanks.