Quelle est la durée de l'action native action.show () et hide () animation

Je souhaite faire de l'animation lorsque la barre d'action anime. Cependant, je ne connais pas la durée de l'animation de la barre d'action.

  • Comment puis-je créer un certificat pour mon APK Android Market?
  • Obtenir la taille de la vue image pour la création de Bitmap
  • GetLocationOnScreen () vs getLocationInWindow ()
  • Activation de ExternalNativeBuild avec ABI split
  • ListFragment onItemClickListener ne fonctionne pas
  • Le thème Android XML héritant de deux thèmes parents?
  • Expédier une application avec une base de données
  • Taille composite
  • Mode de lancement Android OneTask ou singleInstance?
  • Android ICS: Supprimez le diviseur bleu dans ActionBar?
  • Toutes les bibliothèques com.android.support doivent utiliser la même version exacte
  • Puis-je garder le reconnaissant de la parole en train d'écouter indéfiniment?
  • 4 Solutions collect form web for “Quelle est la durée de l'action native action.show () et hide () animation”

    Malheureusement, le temps d'animation de la barre d'action native semble être codé en dur dans le code source Android après la version 4.1 (sans attributs, pas de dimensions, pas de méthodes) et il est défini sur 250ms :

    Exemple de mise en œuvre de la méthode actionbar.hide() dans 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); 

    Cela se produit également sur 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); } } 

    Avant 4.1 (par ex. 4.0.1), il n'y a pas de valeur de durée codée (en fait, il n'y a pas de valeur), de toute façon, vous pouvez utiliser la réflexion pour accéder à la durée de l' Animator après la première animation. Le champ d'accès est le suivant:

     private Animator mCurrentShowAnim; 

    Je sais que ce n'est pas une réponse complète, mais je pense que cela pourrait être utile de toute façon.

    Au moins en 4.3, il était de 250 ms.

    Voir la source ici

    Eh @vincentzhou votre question n'est pas bien structurée, mais je peux vous donner un guide sur la façon de définir le temps que vous voulez que vous manipuler élément dans JavaScript

      $(document).ready(function(){ $('#action').show(); setTimeout(function() { $('#action').fadeOut(); }, 5000); }); 

    Cela affichera l'élément avec id="action" pour 5s. J'espère que cela peut aider

    ActionBar.Show – Affiche le ActionBar s'il ne l'affiche pas actuellement. Il n'y a pas de durée ajoutée à cela. Cela rend l'ActionBar visible jusqu'à ce qu'un actionBar.Hide soit appelé.

    J'espère que cela clarifie

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.