perf(P4): Feste Breiten für Anzeigewerte - kein Neulayout mehr (1.9.4) #73
@@ -1,3 +1,15 @@
|
|||||||
|
Version 1.9.4:
|
||||||
|
- Die Messung mit Koordinaten hat den Verursacher benannt: Der ungültige Bereich war
|
||||||
|
„x 0..1279, y 44..719" - also der gesamte Inhalt unterhalb der Kopfleiste, bei jeder
|
||||||
|
Zustandsmeldung.
|
||||||
|
- Grund: Die Anzeigewerte hatten keine feste Breite. Wächst oder schrumpft eine Beschriftung
|
||||||
|
mit ihrem Inhalt - etwa von „92,4 °C" auf „100,1 °C" -, rechnet LVGL das Layout der
|
||||||
|
gesamten Seite neu und macht sie dabei komplett ungültig. Es genügt also nicht, den Text
|
||||||
|
nur bei echter Änderung zu setzen; er darf beim Ändern auch die Breite nicht verändern.
|
||||||
|
- Temperaturwerte, Sollwerte und die Werte der unteren Zeile haben jetzt eine feste Breite
|
||||||
|
mit zentriertem Text. Sichtbar ändert sich dadurch nichts - die Werte standen ohnehin
|
||||||
|
mittig.
|
||||||
|
|
||||||
Version 1.9.3:
|
Version 1.9.3:
|
||||||
- Fehlerbehebung: Bei geöffnetem Menü war der Seiteninhalt dahinter verschwunden. Der
|
- Fehlerbehebung: Bei geöffnetem Menü war der Seiteninhalt dahinter verschwunden. Der
|
||||||
Vorhang des Menüs war in 1.8.7 deckend gemacht worden, um Zeichenlast zu sparen - dabei
|
Vorhang des Menüs war in 1.8.7 deckend gemacht worden, um Zeichenlast zu sparen - dabei
|
||||||
|
|||||||
@@ -1056,6 +1056,13 @@ static lv_obj_t* tempField(lv_obj_t* parent, const char* title, lv_color_t accen
|
|||||||
lv_label_set_text(*big, "--.-");
|
lv_label_set_text(*big, "--.-");
|
||||||
lv_obj_set_style_text_color(*big, COL_TEXT, 0);
|
lv_obj_set_style_text_color(*big, COL_TEXT, 0);
|
||||||
lv_obj_set_style_text_font(*big, valueFont, 0);
|
lv_obj_set_style_text_font(*big, valueFont, 0);
|
||||||
|
// Feste Breite, Text zentriert. Waechst oder schrumpft eine Beschriftung mit ihrem
|
||||||
|
// Inhalt - etwa von "92,4 °C" auf "100,1 °C" -, rechnet LVGL das Flex-Layout der
|
||||||
|
// gesamten Seite neu und macht sie damit komplett ungueltig. Genau das war im
|
||||||
|
// Messprotokoll als "x 0..1279, y 44..719" zu sehen: der ganze Inhaltsbereich, bei
|
||||||
|
// jeder Zustandsmeldung. Mit fester Breite bleibt nur die Beschriftung selbst ungueltig.
|
||||||
|
lv_obj_set_width(*big, LV_PCT(100));
|
||||||
|
lv_obj_set_style_text_align(*big, LV_TEXT_ALIGN_CENTER, 0);
|
||||||
// Grosse Zahlen etwas enger setzen. Bei dieser Groesse wirken die Werksabstaende
|
// Grosse Zahlen etwas enger setzen. Bei dieser Groesse wirken die Werksabstaende
|
||||||
// auseinandergezogen; ein paar Pixel weniger binden die Ziffern zu einer Zahl zusammen.
|
// auseinandergezogen; ein paar Pixel weniger binden die Ziffern zu einer Zahl zusammen.
|
||||||
if (valueFont == &lv_font_maven_pro_bold_140) lv_obj_set_style_text_letter_space(*big, -3, 0);
|
if (valueFont == &lv_font_maven_pro_bold_140) lv_obj_set_style_text_letter_space(*big, -3, 0);
|
||||||
@@ -1065,6 +1072,8 @@ static lv_obj_t* tempField(lv_obj_t* parent, const char* title, lv_color_t accen
|
|||||||
lv_label_set_text(*setp, "Soll --.-");
|
lv_label_set_text(*setp, "Soll --.-");
|
||||||
lv_obj_set_style_text_color(*setp, COL_TEXT_DIM, 0);
|
lv_obj_set_style_text_color(*setp, COL_TEXT_DIM, 0);
|
||||||
lv_obj_set_style_text_font(*setp, font_text(), 0);
|
lv_obj_set_style_text_font(*setp, font_text(), 0);
|
||||||
|
lv_obj_set_width(*setp, LV_PCT(100));
|
||||||
|
lv_obj_set_style_text_align(*setp, LV_TEXT_ALIGN_CENTER, 0);
|
||||||
|
|
||||||
*bar = lv_bar_create(c);
|
*bar = lv_bar_create(c);
|
||||||
lv_obj_set_size(*bar, LV_PCT(92), 8);
|
lv_obj_set_size(*bar, LV_PCT(92), 8);
|
||||||
@@ -1210,6 +1219,9 @@ static lv_obj_t* infoCell(lv_obj_t* parent, const char* title, lv_obj_t** val, l
|
|||||||
lv_obj_set_style_text_color(*val, COL_TEXT, 0);
|
lv_obj_set_style_text_color(*val, COL_TEXT, 0);
|
||||||
lv_obj_set_style_text_font(*val, font_title(), 0);
|
lv_obj_set_style_text_font(*val, font_title(), 0);
|
||||||
lv_obj_set_style_text_align(*val, LV_TEXT_ALIGN_CENTER, 0); // fuer mehrzeilige Werte
|
lv_obj_set_style_text_align(*val, LV_TEXT_ALIGN_CENTER, 0); // fuer mehrzeilige Werte
|
||||||
|
// Feste Breite: Sonst aendert der Wert mit seinem Inhalt die Breite, LVGL rechnet das
|
||||||
|
// Layout der Zeile neu und macht die ganze Seite ungueltig (siehe tempField).
|
||||||
|
lv_obj_set_width(*val, LV_PCT(100));
|
||||||
return card;
|
return card;
|
||||||
}
|
}
|
||||||
// Tipp auf die Statuszeile: Wartung -> Serviceseite, Reinigung -> Sub-Screen,
|
// Tipp auf die Statuszeile: Wartung -> Serviceseite, Reinigung -> Sub-Screen,
|
||||||
|
|||||||
Reference in New Issue
Block a user