Ich habe ein Fragment innerhalb einer Aktivität, die eine TextView und einen Button enthält. Wenn ich auf den Button klicke, wird ein anderes Fragment geladen und der Text des TextView im ersten Fragment ist nun der Titel der Toolbar. Ich möchte diese Änderung mit dem Transition Framework und etwas wie changeBounds animieren, aber ich weiß nicht, wie man einen Übergang für die Toolbar einstellt. Kann mir jemand eine Lösung vorschlagen?Übergang von TextView innerhalb Fragment zu Titel der Symbolleiste
0
A
Antwort
0
Sie können einen benutzerdefinierten Übergang erstellen, die eine Textgröße Textview ist beseelt wie folgen:
public class TextSizeTransition extends Transition {
private static final String PROPNAME_TEXT_SIZE = "lychmanit:transition:textsize";
private static final String[] TRANSITION_PROPERTIES = { PROPNAME_TEXT_SIZE };
private static final Property<TextView, Float> TEXT_SIZE_PROPERTY =
new Property<TextView, Float>(Float.class, "textSize") {
@Override
public Float get(TextView textView) {
return textView.getTextSize();
}
@Override
public void set(TextView textView, Float textSizePixels) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSizePixels);
}
};
public TextSizeTransition() {
}
public TextSizeTransition(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public String[] getTransitionProperties() {
return TRANSITION_PROPERTIES;
}
@Override
public void captureStartValues(TransitionValues transitionValues) {
captureValues(transitionValues);
}
@Override
public void captureEndValues(TransitionValues transitionValues) {
captureValues(transitionValues);
}
private void captureValues(TransitionValues transitionValues) {
if (transitionValues.view instanceof TextView) {
TextView textView = (TextView) transitionValues.view;
transitionValues.values.put(PROPNAME_TEXT_SIZE, textView.getTextSize());
}
}
@Override
public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues,
TransitionValues endValues) {
if (startValues == null || endValues == null) {
return null;
}
Float startSize = (Float) startValues.values.get(PROPNAME_TEXT_SIZE);
Float endSize = (Float) endValues.values.get(PROPNAME_TEXT_SIZE);
if (startSize == null || endSize == null ||
startSize.floatValue() == endSize.floatValue()) {
return null;
}
TextView view = (TextView) endValues.view;
view.setTextSize(TypedValue.COMPLEX_UNIT_PX, startSize);
return ObjectAnimator.ofFloat(view, TEXT_SIZE_PROPERTY, startSize, endSize);
}
}
Da die TextView's
Textgröße zu ändern bewirkt, dass seine Layoutgrenzen im Verlauf der Animation ändern Um den Übergang richtig funktionieren zu lassen, braucht man etwas mehr Aufwand, als einfach einen ChangeBounds
Übergang in denselben TransitionSet
zu werfen. Stattdessen müssen Sie die Ansicht in ihrem Endstatus in einer SharedElementCallback
manuell messen/planen.
Verwandte Themen
- 1. Fragment von Fragmenten Symbolleiste Titel Einstellung
- 2. Android-Fragment auf der Rückseite Übergang
- 3. Wie Padding aus dem Titel in der Symbolleiste entfernen?
- 4. CollapsingToolbarLayout Titel als ein gemeinsames Element Übergang
- 5. Android-Fragment Übergang
- 6. Update Fragment TextView von ListView Adapter
- 7. Wie App-Titel aus der Symbolleiste entfernen?
- 8. Wenn UIBarButtonItem Titel zu ändern, der Übergang ruckelt/flackert
- 9. Android-Fragment geteiltes Element Übergang Implementierung
- 10. Android Symbolleiste anzeigen Ende Titel
- 11. CoordinatorLayout collapse Symbolleiste in Aktivität aus Fragment
- 12. Zentrieren Titel in Benutzerdefinierte Symbolleiste
- 13. Wie kann ich den Titel nur in der Symbolleiste nicht in der geöffneten Symbolleiste anzeigen
- 14. verwalten Symbolleiste Navigation und Zurück-Taste von Fragment zu Fragment in android
- 15. Clear TextView von innerhalb der TextWatcher-Methode
- 16. ist es möglich, Shared-Element-Übergang von Fragment zu ViewPager innerhalb Viewpager
- 17. Symbolleiste Ausrichtung Titel in der Mitte mit Zurück-Taste
- 18. Ersetzen Fragment innerhalb der Registerkarte
- 19. Android Accessibility Talkback zu sagen Fragment Titel
- 20. TextView innerhalb von ViewPager abfängt Berührungsereignisse
- 21. Symbolleiste als Aktionsleiste im Fragment einrichten
- 22. Wie Daten von Aktivität zu Fragment innerhalb Fragment
- 23. Android Fragment TextView setText von Hauptaktivität
- 24. Android Studio ändern TextView-Fragment von Aktivität
- 25. Ändern von TextView Inhalt in Fragment
- 26. Android Hinzufügen von Text zu Textview dynamisch in Fragment (wrap_content)
- 27. Commit-Fragment von onLoadFinished innerhalb der Aktivität
- 28. Set Dialog Fragment Titel von rechts angezeigt
- 29. Android-Fragment Übergang mit gemeinsamen Element
- 30. Wie aktualisiere ich den Titel der appcompat-Symbolleiste von außerhalb der Aktivitätsklasse?