ビューアにタブが付いているAndroidアプリケーションで作業しています。ビューページとツールバーが十分なスペースを占めるため、アプリがうまく見えません小さな携帯電話のように私は自動的にスクリーンスペースを保存するために画面から私のツールバーをアニメーション化することを考えていた3s
の時間からユーザーがアプリを開いたり画面に触れたときにツールバーは、私は、Handler
を使用しているので、私はプログラムを処理する傾向があります。Handler
私はremoveCallbacksAndMessages(null) and removeCallbacks(hideToolBar)
メソッドを使用してみましたが、すべてのランナブルをハンドラから削除しますが、それでもすべてを処理します。ユーザーは3s
の前または後に複数回前に画面にタッチしますツールバーを非表示にしてはいけませんが、非表示にして非表示にするなど、以下は私のコードです。Androidで特定の時間が経過した後にアニメーションを表示する
private void showToolBar()
{
if (toolbarHidden) {
toolbar.animate().translationY(0).setInterpolator(new DecelerateInterpolator()).start();
toolbarHidden = false;
}
}
private void hideToolBar()
{
hideRevealHandler = new Handler();
hideToolBar = new Runnable() {
@Override
public void run() {
if (!toolbarHidden) {
toolbar.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).start();
toolbarHide = true;
}
}
};
hideRevealHandler.postDelayed(hideToolBar, 3000);
}
が次にツールバーが非表示になった場合は、その明らかになるようにしても、画面上の任意のをキャプチャするためにdispatchTouchEvent(MotionEvent)
をオーバーライドしています隠された場合にはツールバーを明らかにし
方法。
@Override
public boolean dispatchTouchEvent(MotionEvent me) {
//Call onTouchEvent of SimpleGestureFilter class
if(!toolbarHideCommand) {
toolbarHideCommand = true;
try {
hideRevealHandler.removeCallbacks(hideToolBar);
} catch (NullPointerException w) {
w.printStackTrace();
}
}
else
toolbarHideCommand = false;
showToolBar();
hideToolBar();
return super.dispatchTouchEvent(me);
}
感謝します。 – Chrometobia