2016-12-11 2 views
0

Я пытаюсь выяснить, какой ответ следует использовать, чтобы быть абсолютно уверенным, что вся загрузка начального действия завершена, и сейчас самое подходящее время для начала анимация моих просмотров. Однако единственное, что я нашел, - это полумеры и не всегда работающие решения. Не исключено, что Android не предоставит решения для этой основной потребности.Android - анимация начала просмотра сразу после завершения загрузки нагрузки

  • Я попытался onEnterAnimationComplete(), но это не дозвонились на некоторых устройствах Samsung (Thnx снова Samsung)
  • Я пробовал onWindowFocusChanged() ... Анимация получает разрезать пополам
  • Я попытался добавить globalLayoutListener к некоторому виду ... то же самое
  • Я пробовал onResume() ... то же самое снова
  • Я пробовал someView.post (new Runnable() {... .}); не повезло

Может ли кто-нибудь поделиться своим пониманием?

ответ

0

попробуйте OnPreDrawListener, которые вызываются непосредственно перед тем, как система выполняет вызовы на View.draw(Canvas).

Я использовал несколько раз для анимации, и я увидел Chet Haase предложить ему несколько раз на Q & А.

public void MyAct extends AppCompatActivity implements OnPreDrawListener { 

    @Override 
    public void onCreate(SavedInstanceState state) { 
    super.onCreate(state); 
    init all your stuff... 

    if(state == null) { 
     rootView.getViewTreeObserver().addOnPreDrawListener(this); 
    } 
    } 

    @Override 
    public void onPreDraw() { 
    // remove the listener, you don't want to get called anymore 
    rootView.getViewTreeObserver().removeOnPreDrawListener(this); 

    do your thing here ... 

    return true; // if you return false, it will cancel the draw operation. 
    } 
} 
+0

То же самое происходит. как и в других методах, он работает, только если я установил задержку для анимации. если я начну с нулевой задержки, я никогда не увижу, что это произойдет – Anonymous

Смежные вопросы