我正在为我的Android应用程序使用AppCompat ActionBar(Theme.AppCompat.Light.DarkActionBar)。
启动应用程序后,ActionBar会在6秒后淡出(onCreate方法):
h.postDelayed(new Runnable() {
@Override
public void run() {
getSupportActionBar().hide();
}
}, 6000);
那么,我怎样才能从屏幕顶部到中间用触摸手势淡入ActionBar ...并在10秒后再次淡出?
我认为问题是,ActionBar没有OnTouchListener。
答案 0 :(得分:1)
尝试这样的事情。 在课堂上你想要使用手势:
private GestureDetectorCompat gestureDetectorCompat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gestureDetectorCompat = new GestureDetectorCompat(this, new MyGestureListener());
//Stuff in onCreate()
}
@Override
public boolean onTouchEvent(MotionEvent event) {
this.gestureDetectorCompat.onTouchEvent(event);
return super.onTouchEvent(event);
}
class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) {
//Swipe from the top to the bottom
if(event2.getY() > event1.getY()){
getSupportActionBar().show();
h.postDelayed(new Runnable() {
@Override
public void run() {
getSupportActionBar().hide();
}
}, 6000);
}
return true;
}
}