Wie Android-Dialog (Vollbild, eingebettet) wie in Google Kalender App

8

Was ich gerne erreichen würde

Ein kleines / großes Bildschirmverhalten, wie es von Google in seiner Kalender App implementiert wird.

Wenn Sie zum Beispiel ein neues Ereignis erstellen, wird auf einem großen Bildschirm ein 'Dialog' geöffnet.

  1. , die die Aktivität im Hintergrund dunkler macht
  2. Die Werkzeugleiste bleibt immer am selben Ort und wird niemals durch die Bildschirmtastatur
  3. außer Sichtweite verschoben
  4. Im Hochformat ist der untere Teil der Symbolleiste des Dialogfelds mit dem unteren Rand der erweiterten Symbolleiste der Aktivität ausgerichtet.

    Toolbar-Ausrichtung mit Activity Toolbar

    Die kontextbezogene Aktionsleiste (z. B. für die Textauswahl) wird über der Symbolleiste der Aktivität angezeigt und verschiebt den Dialog nach unten, sodass er nicht mehr mit der Symbolleiste der Aktivität verankert ist.

  5. im Querformat scheint es unterhalb der Benachrichtigungsleiste verankert zu sein; Die Kontextaktionsleiste wird über die Symbolleiste der Aktivität

    gezeichnet

    Kontext-Aktionsleiste: Linke Landschaft, rechtes Porträt

auf einem kleinen Bildschirm,

  1. Der Dialog füllt den Bildschirm
  2. Die Kontext-Aktionsleiste wird über die Symbolleiste
  3. gezeichnet

Was ich bisher versucht habe

A. Vollbild-DialogFragment-Beispiel aus der Android-Dokumentation (kann nicht mehr Links b / c einer fehlenden Reputation hinzufügen)

  • Bei der Anzeige als Vollbilddialog ist der Hintergrund transparent und über die Benachrichtigungsleiste (ähnlich dem Immersive-Modus)
  • gezeichnet

B. hinzugefügt (Danke an einige Beiträge auf stackoverflow)

  • Dialogfragmentstile:

    %Vor%
  • hat den Fenstertitel

    entfernt %Vor%
  • hat eine benutzerdefinierte Symbolleiste hinzugefügt

    %Vor%
  • und setze den Dialog auf kleinen Geräten auf Vollbild

    %Vor%

und das funktioniert irgendwie, es löst einige meiner Was ich gerne erreichen würde und A. 'das Android-Beispiel' Probleme (transparenter Hintergrund, ...)

  1. verdunkelt die Aktivität im Hintergrund

    • funktioniert
  2. Die Toolbar bleibt immer am selben Ort und wird nie durch die Bildschirmtastatur aus der Ansicht geschoben

    • irgendwie, mit Ausnahme der Toolbar, die über die Bildschirmtastatur aus dem Bildschirm geschoben wird
  3. Im Hochformat-Modus ist der untere Teil der Symbolleiste des Dialogfelds mit dem unteren Rand der Symbolleiste "Erweitert / Groß" der Aktivität ausgerichtet. Die kontextbezogene Aktionsleiste (z. B. für die Textauswahl) wird über die Symbolleiste der Aktivität gezogen und verschiebt den Dialog nach unten, sodass er nicht mehr mit der Aktivitätssymbolleiste verankert ist.

    • nein, hat keine Mühe in die Ausrichtung b / c von 2 gesteckt. Die kontextbezogene Aktionsleiste wird über die Symbolleiste der Aktivität und über einen Teil der Symbolleiste des Dialogs gezeichnet.
  4. im Querformat scheint es unterhalb der Benachrichtigungsleiste verankert zu sein; Die Kontext-Aktionsleiste wird über die Symbolleiste der Aktivität gezeichnet.

    • nein, die Bildschirmtastatur schiebt die Toolbar aus dem Bildschirm und die kontextbezogene Aktionsleiste wird über die Symbolleiste der Aktivität gezogen, aber auch über einen Teil des Dialogs (b / c der Symbolleiste des Dialogs wird nach außen geschoben - nehme ich an)
  5. füllt den Bildschirm

    • funktioniert
  6. Die Kontext-Aktionsleiste wird über die Symbolleiste des Dialogfelds gezogen

    • Die kontextbezogene Aktionsleiste verschiebt die Symbolleiste des Dialogfelds nach unten, sodass der Benutzer über zwei Symbolleisten verfügt. Sieht komisch aus, aber zumindest funktioniert es.

Also, mein erster Beitrag wurde ein bisschen länger - danke an alle, die bisher mitbekommen haben.

Ich recherchiere dieses Thema schon seit geraumer Zeit. Manche Leute sagen, dass Dialogfragmente nicht gut für die Anzeige im Vollbildmodus sind und dass man eine Aktivität so gestalten sollte, dass sie wie ein Dialog aussieht. Andere sagen, dass es eine schlechte Übung ist, Aktivitäten so zu gestalten, dass sie wie Dialoge aussehen, für die DialogFragments gemacht wurden. Es scheint keine weitgehende Übereinstimmung zu diesem Thema zu geben.

Hat jemand einen Einblick, wie Google dies in seiner Kalender-App implementiert hat? (Leider ist in den AOSP-Quellen nur die alte Kalender-App verfügbar.)

Und gibt es eine Möglichkeit, alle meine Anforderungen mit Dialogfragmenten zu erfüllen?

Vielen Dank Michael

btw: Großes Gerät testet auf einem Android 4.1 Tablet, kleines Gerät Android 4.1 und 5.0, mit Support-Bibliothek DialogFragment, aber im Übergang zu 'normalen' DialogFragment.

    
bam 31.12.2015, 10:41
quelle

0 Antworten