9

In meinem app ich as suggested in option #2 in this postAndroid - Symbolleiste und die Statusleiste als gemeinsam genutzte Objekte mit Inhalt ändern

Das allgemeine Verhalten und die Kontur der Symbolleiste, um die Symbolleiste und die Statusleiste als gemeinsame Objekte gesetzt und Registerkarten sind ausgezeichnet - das einzige Problem ist, Wenn ich zu Aktivität B gehe, ändern sich einige der Texte und Symbole - und die Änderung wird derzeit durchgeführt, nachdem der Übergang des gemeinsamen Elements abgeschlossen ist.

Ich habe versucht, ein SharedElementCallback hinzufügen und darin über die untergeordneten Elemente der Symbolleiste und Registerkarten und fügen Sie sie alle zu einem Fade Übergang - aber es hat sich nicht auf das Verhalten der Symbolleiste und Registerkarte Inhalt.

Irgendeine Idee, wie man von hier fortgeht?

Added Screenshots nach Kommentar:

Aktivität A

In Activity A

Aktivität B

In Activity B

+0

aufwendigen Herr, zu verändern, wie können Sie Screenshots geben? – Elltz

+0

Was ist Ihr gewünschtes Verhalten? "* Wenn ich zu Aktivität B gehe, ändern sich einige der Texte und Symbole *" - Aktivitäten sollten unabhängige Komponenten Ihrer Anwendung sein, warum sollten sich Text und/oder Symbole beim Wechsel zur Aktivität ändern? – Simas

+0

Was ich will ist ein fließender Übergang in der Symbolleiste von Aktivität A nach B - was bedeutet einige Ausblenden der Symbole und Text in A und Einblenden der Symbole und Text in B dargestellt. Derzeit ist der Hintergrund in Ordnung, aber der Text und Symbole wechseln, wenn die Animation beendet ist –

Antwort

1

Jede Aktivität Ihr eigenes Menü hat, so dass Sie das Menü erstellen haben für jeder, auch wenn sie gleich sind.

Wenn Sie jedoch bevorzugen, können Sie nur ein Menü erstellen und eine benutzerdefinierte Klasse zum Bearbeiten des Menüs erstellen. Dann rufen Sie diese benutzerdefinierte Klasse unter onCreateOptionsMenu und onOptionsItemSelected von welcher Aktivität auch immer an.

Der folgende Code ist ein Beispiel.

Individuelle Klasse:

public class MenuActionBar { 

    public static void createOptionsMenu(final Activity activity, Menu menu) { 

     activity.getMenuInflater().inflate(R.menu.yourmenu, menu); 

     // Do whatever you wanna do 

    } 

    public static boolean optionsItemSelected(Activity activity, MenuItem item) { 

     // Do whatever you wanna do 

    } 

} 

Aktivität:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    MenuActionBar.createOptionsMenu(this, menu); 

    return super.onCreateOptionsMenu(menu); 

} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    return MenuActionBar.optionsItemSelected(this, item) 
      ? true : super.onOptionsItemSelected(item); 

} 
+0

Die Frage ist, wie man den Übergang von einem Menü zum anderen animiert –

+0

Aber Sie sagten, es funktioniert gut, und das einzige Problem ist die Symbole und Texte, die sich ändern. Versuchen Sie, Ihren Animationscode in die benutzerdefinierte Klasse einzufügen. –

+0

sie ändern sich ohne Animation - der Teil, der in Ordnung ist, ist der Teil, wo die gesamte Symbolleiste nicht flackert - das ist das Problem, das in dem Post angesprochen wurde, mit dem ich verlinkt habe –