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.

  • Le layout_above de RelativeLayout donne l'erreur "Aucune ressource trouvée"
  • Android: comment afficher automatiquement la barre de défilement verticale?
  • Android 3.0, Widget Preview
  • Finition de l'activité actuelle à partir d'un fragment
  • Qu'est-ce qu'un événement de presse à joues?
  • Comment enregistrer le jeton d'accès Oauth en toute sécurité dans Android
  • Quel est le dossier "Bibliothèques privées Android" dans Eclipse?
  • Comment gérer les problèmes de la nouvelle feuille inférieure de la bibliothèque de support / conception?
  • Contrôle de raccourci clavier Android Studio
  • Pourquoi la reprise d'une activité dans Android cause-t-elle BadTokenException?
  • Application du thème AppCompat aux préférences individuelles dans un Fragment préféré
  • Une erreur dans le programme NDAK de Android ne peut pas trouver
  • 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.