A few of my projects

Hi @JoeDims,
I will answer this in two ways,

  1. I felt a need to have a set of features available generally for all pages in an application without them being dependent on or influencing one another among them being, frugal memory management, common look and feel and implicit functionality regarding navigation etc without the need to deal with those matters on each page/screen I created. This is basically described here,
    Sandbox application framework.
    Although I continued development on the concept considerably, I have not been posting updates on the forum as I received very little feedback on the framework. I took this to mean there is probably no interest in it. If you are interested, I will make the latest version available to you.
  2. If you prefer, the picture and short code segment below shows the basic concept, you can adapt it as needed.
typedef struct {
	lv_obj_t * hdr;
	lv_obj_t * btn;
	lv_obj_t * lbl;
	char * buf;
	size_t buf_size;
} htd_t;

static void header_task(lv_task_t * tsk)
{
	htd_t * mem = tsk->user_data;
	if( !mem )
		return;
	time_t tme = time(NULL);
	time_t tme1 = tme;
	tme /= 60;
	unsigned mm = tme%60;
	unsigned hh = (tme%1440)/60;

	sprintf( mem->buf, tme1&1 ? "%4.1f%sC %s1 %s %.2u %.2u" : "%4.1f%sC %s1 %s %.2u:%.2u"
		, Sampler_BrdTempUiGet()
		, SYMBOL_EXT_DEGREE_SIGN
		, LV_SYMBOL_WIFI
		, LV_SYMBOL_BLUETOOTH
		, hh, mm
	);

	lv_label_set_text_static( mem->lbl, NULL );
}

static void init_status_area(void)
{
	lv_obj_t * header = sndbx_get_header();
	lv_obj_t * btn  = sndbx_get_settings_btn();

	htd_t *mem = lv_mem_alloc(sizeof(htd_t));

	mem->hdr = header;
	mem->btn = btn;
	mem->lbl = lv_label_create(header, NULL);
	mem->buf = lv_mem_alloc(128);
	mem->buf_size = 128;

	mem->buf[0] = '\0';
	lv_label_set_text_static( mem->lbl, mem->buf );
	lv_label_set_align( mem->lbl, LV_LABEL_ALIGN_RIGHT );
	lv_label_set_recolor( mem->lbl, true );

	lv_task_t * tsk = lv_task_create( header_task, 1000, LV_TASK_PRIO_LOW, mem );
	header_task(tsk);
	lv_obj_align( mem->lbl, mem->btn, LV_ALIGN_OUT_LEFT_MID, -LV_DPI*1/12, 0);
	lv_obj_set_auto_realign( mem->lbl, true );
}

sndbx_get_header() (return’s sandbox created object, sized and laid out as required for the header)
and
sndbx_get_settings_btn() (return’s sandbox created button, top right)

The page title is created and managed by the sandbox framework. As are the navigation buttons as described in the link. But that you could do without the framework if you like.

I hope this helps, let me know if I could be of further assistance.