Voglio animare quando la barra di azione è in animazione. Tuttavia, non conosco la durata dell'animazione della actionbar.Qual è la durata dell'animazione actionbar.show() e hide() nativa
risposta
Purtroppo, il tempo ActionBar animatore nativo sembra essere hard-coded nel Android source code dopo la versione 4.1 (senza attributi, senza dimensioni, esistono metodi) ed è impostato per 250ms :
Esempio di implementaiton di actionbar.hide()
metodo in Android 4.1/4.4:
public void doHide(boolean fromSystem) {
if (mCurrentShowAnim != null) {
mCurrentShowAnim.end();
}
if (mCurWindowVisibility == View.VISIBLE && (mShowHideAnimationEnabled
|| fromSystem)) {
mContainerView.setAlpha(1);
mContainerView.setTransitioning(true);
AnimatorSet anim = new AnimatorSet();
float endingY = -mContainerView.getHeight();
if (fromSystem) {
int topLeft[] = {0, 0};
mContainerView.getLocationInWindow(topLeft);
endingY -= topLeft[1];
}
ObjectAnimator a = ObjectAnimator.ofFloat(mContainerView, View.TRANSLATION_Y, endingY);
a.addUpdateListener(mUpdateListener);
AnimatorSet.Builder b = anim.play(a);
if (mContentAnimations && mContentView != null) {
b.with(ObjectAnimator.ofFloat(mContentView, View.TRANSLATION_Y,
0, endingY));
}
if (mSplitView != null && mSplitView.getVisibility() == View.VISIBLE) {
mSplitView.setAlpha(1);
b.with(ObjectAnimator.ofFloat(mSplitView, View.TRANSLATION_Y,
mSplitView.getHeight()));
}
anim.setInterpolator(AnimationUtils.loadInterpolator(mContext,
com.android.internal.R.interpolator.accelerate_cubic));
anim.setDuration(250);
anim.addListener(mHideListener);
mCurrentShowAnim = anim;
anim.start();
} else {
mHideListener.onAnimationEnd(null);
Questo accade anche Lollipop:
public void doHide(boolean fromSystem) {
if (mCurrentShowAnim != null) {
mCurrentShowAnim.end();
}
if (mCurWindowVisibility == View.VISIBLE && (mShowHideAnimationEnabled
|| fromSystem)) {
mContainerView.setAlpha(1);
mContainerView.setTransitioning(true);
AnimatorSet anim = new AnimatorSet();
float endingY = -mContainerView.getHeight();
if (fromSystem) {
int topLeft[] = {0, 0};
mContainerView.getLocationInWindow(topLeft);
endingY -= topLeft[1];
}
ObjectAnimator a = ObjectAnimator.ofFloat(mContainerView, View.TRANSLATION_Y, endingY);
a.addUpdateListener(mUpdateListener);
AnimatorSet.Builder b = anim.play(a);
if (mContentAnimations && mContentView != null) {
b.with(ObjectAnimator.ofFloat(mContentView, View.TRANSLATION_Y,
0, endingY));
}
if (mSplitView != null && mSplitView.getVisibility() == View.VISIBLE) {
mSplitView.setAlpha(1);
b.with(ObjectAnimator.ofFloat(mSplitView, View.TRANSLATION_Y,
mSplitView.getHeight()));
}
anim.setInterpolator(AnimationUtils.loadInterpolator(mContext,
com.android.internal.R.interpolator.accelerate_cubic));
anim.setDuration(250);
anim.addListener(mHideListener);
mCurrentShowAnim = anim;
anim.start();
} else {
mHideListener.onAnimationEnd(null);
}
}
Prima 4.1 (ad esempio 4.0.1) non esiste alcun valore di durata hardcoded (in realtà non c'è alcun valore), comunque è possibile utilizzare il reflection per accedere alla durata dello Animator
dopo la prima animazione. Il campo per l'accesso è il seguente:
private Animator mCurrentShowAnim;
So che questa non è una risposta completa, ma penso che potrebbe essere utile in ogni caso.
eh @vincentzhou la tua domanda non è ben strutturato ma io cosa questo può darvi qualche guida su come impostare il tempo che si desidera di manipolare voi elemento in JavaScript
$(document).ready(function(){
$('#action').show();
setTimeout(function() {
$('#action').fadeOut();
}, 5000);
});
questo verrà visualizzato l'elemento con id="action"
per 5s. spero che possa essere d'aiuto
ActionBar.Show - Mostra l'ActionBar se non è attualmente visualizzato. Non vi è alcuna durata allegata. Rende visibile l'ActionBar finché non viene chiamato actionBar.Hide.
Spero che questo chiarisce
Lo so. Ma quando chiami actionbar.show(), la barra delle azioni verrà mostrata con un'animazione. – vincentzhou
Intendo la durata dell'animazione. – vincentzhou
- 1. Qual è la differenza tra `ng-show` e` ng-hide`?
- 2. Qual è la durata e la validità degli iteratori C++?
- 3. variabili statiche, qual è la loro durata?
- 4. Qual è la durata di un Toast LENGTH_LONG e LENGTH_SHORT
- 5. Qual è la durata della variabile all'interno del blocco?
- 6. Qual è la durata di un controller MVC ASP.NET?
- 7. CoreBluetooth: Qual è la durata di UUID unici
- 8. Durata connessione e durata connessione
- 9. Qual è la durata della memoria puntata a typeinfo :: name()?
- 10. Qual è la differenza in Qt tra setVisible, setShown e show/hide
- 11. Qual è la differenza di bewteen jQuery.merge() e della funzione nativa JavaScript concat()?
- 12. Qual è la differenza esatta tra app nativa e web in Azure Active Directory
- 13. Le chiamate AJAX non si bloccano e qual è la loro durata?
- 14. Qual è la durata e l'ambito della variabile di loop inclusa?
- 15. Animate.css e Angularjs ng-hide
- 16. Qual è una durata ragionevole aspettarsi da un'eccezione java?
- 17. Qual è il valore massimo per Java Durata
- 18. prolungando la durata di provvisori
- 19. Sovrascrivere la funzione nativa?
- 20. Divisione MusicXML e durata
- 21. Qual è il posto migliore dove mettere la libreria nativa scaricata su Android?
- 22. Qual è la durata dell'oggetto nel codice javascript che utilizza l'ereditarietà del prototipo?
- 23. qual è la durata del token di accesso all'API Github OAuth
- 24. Qual è il modo migliore per misurare la durata del codice da eseguire?
- 25. Qual è la durata dell'animazione predefinita per le modifiche al layout di UICollectionView?
- 26. Qual è la durata dell'oggetto target del puntatore-a-funzione che punta a un lambda?
- 27. Qual è l'unità di measurment per la durata media in MediaMetadataRetriever
- 28. Qual è la durata di un argomento predefinito temporaneamente associato a un parametro di riferimento?
- 29. Qual è il modo migliore per ottenere la durata di una chiamata API utilizzando Guzzle 6
- 30. Qual è la differenza tra = e: =
Mi dispiace, ma penso che sto chiedendo una domanda su Android. – vincentzhou