andoroid实现滑动上下滑动列表的时候动画隐藏其他视图

     1.准备手势处理 

       LeftGesture leftGesture;

GestureDetector mGestureDetector;
final int MIN_DINTANCE_MODELY = 75;
final float MIN_DINTANCE_ORDERY = 0.1f;

Animation up, down, header_up, header_down;


   2.初始化手势和动画等行为

                leftGesture = new LeftGesture();// 手势监听类
mGestureDetector = new GestureDetector(getActivity(), leftGesture);
up = AnimationUtils.loadAnimation(getActivity(), R.anim.up);
down = AnimationUtils.loadAnimation(getActivity(), R.anim.down);
header_up = AnimationUtils.loadAnimation(getActivity(), R.anim.header_up);
header_down = AnimationUtils.loadAnimation(getActivity(), R.anim.header_down);


  3.注册手势

 class LeftGesture extends SimpleOnGestureListener {
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
if (e1 != null && e2 != null)
if ((e1.getY() - e2.getY()) > MIN_DINTANCE_MODELY) {
// 向上滑动
if ((e1.getY() - e2.getY()) > MIN_DINTANCE_ORDERY && Math.abs(distanceY) > MIN_DINTANCE_ORDERY) {
if (header.getVisibility() == View.VISIBLE) {
header.startAnimation(header_down);
header.setVisibility(View.GONE);
}
if (radioGroup.getVisibility() == View.VISIBLE) {
radioGroup.startAnimation(down);
radioGroup.setVisibility(View.GONE);
}
}
} else if ((e2.getY() - e1.getY()) > MIN_DINTANCE_MODELY) {
// 向下滑动
if ((e2.getY() - e1.getY()) > MIN_DINTANCE_ORDERY&& Math.abs(distanceY) > MIN_DINTANCE_ORDERY) {
if (header.getVisibility() == View.GONE) {
header.startAnimation(header_up);
header.setVisibility(View.VISIBLE);
}
if (radioGroup.getVisibility() == View.GONE) {
radioGroup.startAnimation(up);
radioGroup.setVisibility(View.VISIBLE);
}
}
}
return false;
}
}


4.准备的一些动画xml

up.xml


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >


      <translate
        android:duration="300"
        android:fromYDelta="100.0%"
        android:toYDelta="0.0" />


</set>


down.xml


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >


    <translate
        android:duration="300"
        android:fromYDelta="0.0"
        android:toYDelta="100.0%" />


</set>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序邦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值