AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung [Fmx,Ios 11.2,Rx10.2.2] Statusbar Batterie-Icon
Thema durchsuchen
Ansicht
Themen-Optionen

[Fmx,Ios 11.2,Rx10.2.2] Statusbar Batterie-Icon

Ein Thema von Rollo62 · begonnen am 18. Jan 2018 · letzter Beitrag vom 28. Mai 2018
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
3.905 Beiträge
 
Delphi 12 Athens
 
#1

[Fmx,Ios 11.2,Rx10.2.2] Statusbar Batterie-Icon

  Alt 18. Jan 2018, 07:10
Hallo zusammen,

ich habe seltsame Überlappung des Batteriesymbols im View, vorher war es noch OK.
Das passiert aber auch nicht auf allen Geräten.
Den Fehler sehe ich auf iPhone6, iPhone7, iPhoneX ist nocht nicht getestet.
Name:  Clipboard01_top.jpg
Hits: 130
Größe:  1,3 KB
(Sorry für das schlechte Bild, aber da hat jemand einen roten Pfeil mit reingezeichet).
  • Das Bild zeigt den oberen, rechten Bereich des Main Views, also vomgesamten Screen.
  • Die StatusBar ist nicht sichtbar, aber das grüne Batteriesymbol kommt trotzdem durch und überlappt den oberen Bereich.
  • Das SystemStatusbar in den Forms-Eigenschaften ist auf Visible eingeschaltet, mit der Farbe schwarz, also sollte die Statusbar eigentlich normal gezeigt werden (über dem main view).
    Diese ist aber nicht sichtbar (siehe Bild).
  • Auf anderen iPhones 6 Edge (Ios11.2.2) ist die Statusleiste auch sichtbar, so wie es sein sollte, also betrifft der Fehler mal wieder nur bestimmte Phones.

Es gibt da eine Menge Hinweise auf Bugs in diese Richtung unter Ios11, aber konkret dazu habe ich nichts gefunden.

Könnte es sein das dafür ein neues Property zuständig ist:
directionalLayoutMargins

Welches die Margins definiert.
https://developer.apple.com/document...llayoutmargins
https://github.com/imanoupetit/Margins-And-Safe-Area


Dummerweise finde ich das Property in den Sourcen von Rx10.2.2 noch nicht, könnte also sein das es in Rx1022 gar nicht berücksichtigt ist.

Habt Ihr das Problem auch schon gesehen, und wie könnte man das wegbekommen ?

Rollo
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.905 Beiträge
 
Delphi 12 Athens
 
#2

AW: [Fmx,Ios 11.2,Rx10.2.2] Statusbar Batterie-Icon

  Alt 19. Jan 2018, 13:21
Das scheint mit dem Ios11 Patch zusammenzuhängen.

Ich habe Rx10.2.2 hier, das Patch ist für Rx10.2.1, also bin ich davon ausgegangen das es in Rx10.2.2 integriert ist.

Oder irre ich mich da ?

Das Problem des Überlappens von Statusbar und oberem View scheint nur auf manchen Geräten zu passieren.
Kann mich da irgendjemand Erleuchten wie man dazu einen Workaround findet ?

Ich bin geneigt einfach am oberen Bereich ein Rectangle zu legen, aber das Problem ist ja das mache Phones brauchen das, manche nicht (alle Ios11).
Wie kann ich wohl herausfinden wann ich den Margin 20px brauche und wann nicht ?

Rollo
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.905 Beiträge
 
Delphi 12 Athens
 
#3

AW: [Fmx,Ios 11.2,Rx10.2.2] Statusbar Batterie-Icon

  Alt 21. Jan 2018, 14:06
Ich habe gerade auf demselben Phone (iPhone 6S) dieselbe App getestet:
1. einmal die App als Debug per Debugger über RadStudio
2. einmal die App als Release über Testflight

bei 1. Alles ist OK
bei 2. die Statusbar überlappt komplett den oberen Bereich

Solche Probleme hatte ich in der Vergangenheit schon des öfteren, das Debug und Testflight(Release) sich unterschiedlich Verhalten.
Kann das noch jemand bestätigen ?

Hat da vielleicht jemand eine Idee, sind etwas Debug/Release Libraries aus unterschiedlichen Sourcen, oder gibt es irgendwelche Compilerschalter (ausser DEBUG nutze ich nichts vom RadStudio) ?

Rollo
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.905 Beiträge
 
Delphi 12 Athens
 
#4

AW: [Fmx,Ios 11.2,Rx10.2.2] Statusbar Batterie-Icon

  Alt 29. Jan 2018, 12:00
Gibt es das Problem denn nur bei mir ?

Andere IDEs im Web haben ähnliche Probleme.
Das hier ist so ungefähr was ich hier auch sehe.
https://github.com/ionic-team/ionic/issues/13294
https://stackoverflow.com/questions/...der-status-bar

Im Debugger ist ALLES OK, im Debugger mit Run ist auch Alles OK, im Release bei Testflight sieht es aus wie oben.

Eine mögliche Lösung wäre dies
https://stackoverflow.com/questions/...earea-in-ios11

Aber das scheint mir das es erkennt ob Ios11 auf dem Gerät installiert ist, und dann die Höhe kompensiert.
Ich werde mal versuchen ein Dummy-Rectangle einzublenden bei IOS11, aber das XCode Beispiel macht wohl noch etwas anderes mit SafeArea.
Werde ich mal checken, in der Hoffnung das es wirklich nur an Ios11 liegt, und nicht von Gerät zu Gerät unterschiedlich.

Rollo
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.905 Beiträge
 
Delphi 12 Athens
 
#5

AW: [Fmx,Ios 11.2,Rx10.2.2] Statusbar Batterie-Icon

  Alt 29. Jan 2018, 18:54
https://quality.embarcadero.com/brow...emStatusBar%22

Hier wäre der Effekt wohl im QC, wenn es hier noch andere iOS Entwickler gibt, bitte voten.

Rollo
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.905 Beiträge
 
Delphi 12 Athens
 
#6

AW: [Fmx,Ios 11.2,Rx10.2.2] Statusbar Batterie-Icon

  Alt 30. Jan 2018, 07:37
Ok, ich muss es dann wohl mit einem Dirty-Hack versuchen, bis es da irgendeine Info oder Lösung gibt:

Delphi-Quellcode:
//#### 29.01.18: Workaround iOS-11 iPhoneX TopMargin issue ####
//## in OnFormShow:
//## - added fixed margin 20px on iOS-11, by adding TRectangle w/ background color, see below
//## In Form designer:
//## - Set SystemStatusBar.BackgroundColor := clMyBackground;
//## - Set SystemStatusBar.Visibility := Visible;
//##
//##

{$IF    DEFINED( IOS )}

    if not TOSVersion.Check(11, 0) then // Otherwise keep the fixed TopMargin for SystemStatusBar
    begin
        // Remove the iOS11 Margin ONLY when iOS11 is active
        Panel1_Header.Height := Panel1_Header.Height - RectangleHeaderMarginTop.Height;
        RectangleHeaderMarginTop.Visible := False;
    end;

{$ELSE  DEFINED( IOS )}

    // Remove the Margin on any other platform
    Panel1_Header.Height := Panel1_Header.Height - RectangleHeaderMarginTop.Height;
    RectangleHeaderMarginTop.Visible := False;

{$ENDIF DEFINED( IOS )}

//##
//##
//#### 29.01.18: Workaround iOS-11 iPhoneX TopMargin issue ####
Das scheint erstmal zu funktionieren.

Rollo
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.905 Beiträge
 
Delphi 12 Athens
 
#7

AW: [Fmx,Ios 11.2,Rx10.2.2] Statusbar Batterie-Icon

  Alt 28. Mai 2018, 14:58
Ich habe mal seit langem wieder einen Fall auf einem iPhone SE mit dieser iOS Überlappung.
Auch mal ein weiterer Thread dazu hier.

Noch habe ich nicht auf Rx10.2.3 umgestellt, ist es da vielleicht schon etwas gefixed, oder in den vielen Hotfixes/Patches danach ?

Info zu SaveAreaLayoutGuide
Es gibt eine Menge Info zu diesem iOS Problem:
https://useyourloaf.com/blog/safe-area-layout-guide/
https://medium.com/@hassanahmedkhan/...e-b3f09bdc71fe
https://stackoverflow.com/questions/...-compatibility
https://forums.developer.apple.com/thread/87329
https://developer.apple.com/document..._the_safe_area
https://github.com/onmyway133/blog/issues/98
https://gist.github.com/IanKeen/aee3...2fc47ac3ee6ca6

Die Lösungen gehen alle so in die Richtung, je nach iOS Version die Methode zu wählen
if #available(iOS 11, *) Delphi-Lösung: CustomViews ?
Was wäre denn wohl die "offizielle" Embarcadero Lösung dazu, um die Ansicht bei alten und neuen iOS erträglich zu gestalten ?

Soll das etwas über verschiedene Views gelöst werden, wie Sarina vorschlägt ?
https://community.embarcadero.com/fo...-studio-10-2-3
https://community.embarcadero.com/bl...y/custom-views
http://docwiki.embarcadero.com/RADSt..._View_Selector

Ich habe bisher vermieden verschiedene Views für verschiedene Geräte (Phones) zu machen, sondern das über Responsive-Layouts gelöst.
Woran erkennt denn so ein CustomView ob ich ein iPhoneX vor mir habe oder nicht ?
Ich vermute mal das dies nur eine visuelle Darstellung ist, und bestenfalls auf die Auflösung responsiv umschaltet.
Aber eine Anordnung wie iPhoneX es had kann es doch so nicht erkennen, oder etwa doch ?

Falls jemand mit solchen CustomViews arbeitet wäre ein kleiner Hinweis sehr hilfreich, ob man das nutzen oder besser die Finger davon lassen sollte.

Danke vorab schonmal für die Mühe.

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz