API 14から、このアクティビティ内のビューにこのフラグSYSTEM_UI_FLAG_HIDE_NAVIGATION
を使用して、ユーザの操作(画面タッチ)が発生するまでナビゲーションバーを非表示にします。ユーザーが画面をタップすると、バーが表示されます。SYSTEM_UI_FLAG_HIDE_NAVIGATIONを使用した場合の最初のTouchEventのリスン
私がこれをやっている活動は、ユーザーが画面に触れるときに、私のビューに上記のフラグを追加する前に、何らかのアクション(独立したアクティビティを開始)をとります。
このフラグを追加すると、システムは最初の画面タッチを傍受し、ナビゲーションバーを表示することで反応します。私のビューやアクティビティがTouchEventを受け取っているのは、2回目のタッチまでではありません。
このnav hideフラグを使用するときにダブルタップする必要はなく、最初に画面に触れたときに2番目のアクティビティを起動するリスナーを設定できる方法を知っている人はいますか?
私は次のすべてを試しましたが、ナビゲーションバーを表示するために画面に初めて触れたときにコールバックを取得していません。
@Override
public void onUserInteraction(){
Log.i(myTag, "INTERACT");
}
@Override
public boolean onGenericMotionEvent(MotionEvent me){
Log.i(myTag, "GENERIC");
return true;
}
//I thought maybe the size change would lead to a callback here. No dice though.
@Override
public void onWindowAttributesChanged(WindowManager.LayoutParams params){
Log.i(myTag, "WINDOW CHANGE");
}
@Override
public boolean dispatchTouchEvent(MotionEvent me){
Log.i(myTag, "TOUCH");
return true;
}
注:私が最初にタッチすると表示されてからナビゲーションバーを阻止しようとしているわけではない、私はちょうどそのイベントが発生したときにも、他のいくつかの行動を取るしたいと思います。
['View.OnSystemUiVisibilityChangeListener'](http://developer.android.com/reference/android/view/View.OnSystemUiVisibilityChangeListener.html)を試しましたか? –
@JoshLee私はしていないし、それは動作します!どうもありがとう。私がそれを受け入れることができるようにしたい場合は、答えとして投稿してください。 – FoamyGuy