Fade in/out Android 动作条
Fade in/out Android ActionBar
我正在为我的 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。
尝试这样的事情。
在class你要使用的手势:
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;
}
}
我正在为我的 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。
尝试这样的事情。 在class你要使用的手势:
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;
}
}