[英]Hiding ActionBar (Timed) and Animating Views
這基本上是我想發生的事情:
散文:
隱藏ActionBar
。 然后做一些動畫。 等一下 再次顯示ActionBar
。
在基本代碼中:
ActionBar actionBar = getActivity().getActionBar();
actionBar.hide();
TextView someTextView = (TextView) rootView.findViewById(R.id.some_textview);
Animation a = AnimationUtils.loadAnimation(getActivity(), android.R.anim.slide_in_left);
int duration = 1000;
a.setDuration(duration);
someTextView.startAnimation(a);
wait(duration);
actionBar.show();
實際上:
當然,代碼的編寫方式對我想要的不起作用。 我嘗試了幾種解決方案,包括:(1)使用Thread.sleep
,(2)創建新的Runnables
,(3)創建兩個ActionBar
實例(一個用於隱藏,一個用於顯示),甚至還有一些其他方法可以我不記得了。
基本上,到目前為止,結果是:(1)始終顯示ActionBar
,(2)或整個程序等待,顯示ActionBar
,然后播放動畫,或者(3)一些版本同一無序運行。
所以我想我的問題是:
如何隱藏ActionBar
,制作一兩個動畫,然后再次顯示? (僅供參考:我正在擴展Fragment
而不是Activity
的類中運行此代碼。)
使用AnimationListener 。 在Animation
的結尾,再次顯示ActionBar
。
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// You can hide ActionBar here
getActivity().getActionBar().hide();
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// getActivity().getActionBar().show();
// and according to you, use Handler
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
getActivity().getActionBar().show();
}
}, 3 * 1000);
}
});
someTextView.startAnimation(animation);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.