Вот один не очень элегантно, но простой способ.
yourScrollableView
является View
, который будет прокручиваться пользователем, viewYouNeedToHide
является View
, которая содержит вкладки, REQUIRED_SWIPE
это расстояние прокрутки, которые показывают/скрыть событие будет чувствительным к.
использование
yourScrollableView.setOnTouchListener(new View.OnTouchListener() {
float mY;
float swipeDistance;
final float REQUIRED_SWIPE = 50;
@Override
public boolean onTouch(View v, MotionEvent event) {
float y = event.getY();
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN :
swipeDistance = 0;
mY = y;
break;
case MotionEvent.ACTION_MOVE :
swipeDistance += y - mY;
if(Math.abs(swipeDistance) > REQUIRED_SWIPE) {
if(swipeDistance < 0) {
if(viewYouNeedToHide.getVisibility() == View.VISIBLE) {
TranslateAnimation animate = new TranslateAnimation(
0,0,0,viewYouNeedToHide.getHeight());
animate.setDuration(500);
animate.setFillAfter(false);
viewYouNeedToHide.startAnimation(animate);
viewYouNeedToHide.setVisibility(View.GONE);
swipeDistance = 0;
}
} else {
if(viewYouNeedToHide.getVisibility() != View.VISIBLE) {
TranslateAnimation animate = new TranslateAnimation(
0,0,viewYouNeedToHide.getHeight(),0);
animate.setDuration(500);
animate.setFillAfter(false);
viewYouNeedToHide.startAnimation(animate);
viewYouNeedToHide.setVisibility(View.VISIBLE);
swipeDistance = 0;
}
}
}
mY = y;
break;
}
mY = y;
return false;
}
});
это демо, то вы получите некоторое представление https://github.com/LarsWerkman/QuickReturnListView –