2017-04-13 1 views
1

Angenommen, ich habe eine Haupt-, Top-Level Scaffold mit einer appBar und und body.Update Scaffold Inhalte (appBar Titel und Körper) ohne eine neue Ansicht zu drücken?

Ich habe eine Schaltfläche in der AppBar und in seinem onTap ich tue:

Navigator.push(
    context, 
    new MaterialPageRoute(builder: (_) => new DogeWidget()) 
); 

Jetzt DogeWidget ist auch ein Scaffold, weil ich der Standard-Rendering des AppBar mag.

Was passiert:

  • Ich sehe den DogeWidget Schlitten vom unteren Rand des Bildschirms. Es ist ein ganzes Gerüst, das gleitet, nicht nur der Körper.

Was Ich mag würde, um zu sehen:

  • Die Haupt AppBar den Inhalt zu ändern, seine Hamburger verwandelt sich in einen „Pfeil zurück“. Es gibt keine Folie von unten, nur eine gewöhnliche Fade.

Ich weiß nicht, ob ich das selbst schreiben soll oder gibt es etwas, das Flutter bieten kann?

AFAICT, die Gallery macht was ich will (z. B. tippen Sie auf den "Typografie" -Eintrag) - Verhalten ist anders, obwohl mein Code ein fast literarisch kopieren und einfügen ist. Warum?

+0

Ich kann Ihnen mit Ihrem Problem nicht wirklich helfen, aber zumindest für mich scheint der Typografie-Bildschirm auch von unten nach oben zu gleiten (sowie einzublenden). Ich denke, es beginnt etwa 20% von oben und gleitet in Position. Ich begehe 'ecdfe6'. –

+0

Die Galerie App gleitet auch für mich von unten. Es verblasst nicht wie das OP wollte – user1462442

Antwort

1

Für eine Weile hatten wir einen Hack, der dies ermöglichte, indem wir die AppBar zu einem Helden machten, aber es war keine gute Implementierung und verursachte mehr Ärger als es wert war, also haben wir es rückgängig gemacht. Das ist wahrscheinlich das, was Sie sehen.

Es gibt keine einfache Möglichkeit, dies mit Navigator mit dem heutigen Material-Framework zu tun, obwohl Sie Widgets auf der Widgets-Ebene, die es tun können, wenn Sie wollen. Was Sie jedoch tun können, ist, es zu implementieren, indem Sie einen Navigator innerhalb der body Ihrer MaterialApp haben, und dann die AppBar manuell ersetzen (vielleicht über ein Crossfade-Widget wie AnimatedCrossFade).

Dies zu beheben, ist etwas, was wir zu gegebener Zeit tun werden, aber wir priorisieren Bugs und API-Stabilität im Moment, also ist es nicht etwas, was wir in naher Zukunft planen (nächste Monate).

+0

Alternativ ist es möglich, das Hamburger-Symbol in einen "Zurück" -Pfeil zu ändern und den Titel der App-Leiste programmatisch zu aktualisieren? Ich könnte die Buchhaltung selbst machen. – DogeLion

Verwandte Themen