Android右滑返回上一个界面的实现方法

Android右滑返回上一个界面的实现方法,第1张

概述Android右滑返回上一个界面的实现方法publicclassBaseActivityextendsActivityimplementsOnTouchListener{

AndroID右滑返回上一个界面的实现方法

public class BaseActivity extends Activity implements OntouchListener {    public ProgressDialog progressDialog;   public String states;   public RequestQueue mQueue;    /** 触摸时按下的点 **/   PointF downP = new PointF();   /** 触摸时当前的点 **/   PointF curP = new PointF();    @OverrIDe   protected voID onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     this.requestwindowFeature(Window.FEATURE_NO_Title);     }    @OverrIDe   protected voID onResume() {     super.onResume();   }       @OverrIDe   public boolean ontouchEvent(MotionEvent event) {            curP.x = event.getX();     switch (event.getAction()) {               case MotionEvent.ACTION_DOWN:        downP.x = event.getX();            break;     case MotionEvent.ACTION_MOVE:         if (curP.x- downP.x > 500) {         Log.i("TEST","move-=-=-=--=-");         finish();              }        break;     case MotionEvent.ACTION_UP:        break;      default:       break;     }          return true;   }    @OverrIDe   protected voID onPause() {     super.onPause();   }    @OverrIDe   protected voID onDestroy() {     super.onDestroy();    }      } 

如上所示,既然要滑动返回上一个界面,我给出的方法是重写ontouchEvent事件,所以我们实现了OntouchListener 这个接口,

接下来的事情就是,我们要做些什么事呢,没错,就是滑动判断,至于事件 switch 里面的 各个情况对应的是我们对屏幕做了什么样的 *** 作就不解释了,(可以自行百度)如上所示,如果滑动距离超过500像素,就结束当前activity,其实写到这里基本上就没了,但是我怎么可能写这么低端的博客,你们说是不是,好的,重点来了,

博主帅哥,我现在就是用的你这个方法,但是为毛 scrollvIEw 下的布局,对这个接口无效呢,好的,问的漂亮,我的回答是:我tm哪知道,....

OK,我们看下scrollvIEw 源码:

他喵的,果然重写了这个方法, 根据 vIEw 触碰事件的传递顺序,scrollvIEw会先拦截到事件,所以,我们要做的就是,在不对scrollvIEw本来的拦截事件做改变的情况下,加入我们所需要的需求来满足我们实现功能, 那么就很简答了, 当然是 自己 定义一个vIEw,代码如下:

public class BackScrollVIEw extends ScrollVIEw {    /** 触摸时按下的点 **/   PointF downP = new PointF();   /** 触摸时当前的点 **/   PointF curP = new PointF();    public BackScrollVIEw(Context context) {     super(context);   }    public BackScrollVIEw(Context context,AttributeSet attrs,int defStyle) {     super(context,attrs,defStyle);   }    public BackScrollVIEw(Context context,AttributeSet attrs) {     super(context,attrs);   }    @OverrIDe   public boolean ontouchEvent(MotionEvent event) {      curP.x = event.getX();     switch (event.getAction()) {      case MotionEvent.ACTION_DOWN:        downP.x = event.getX();       Log.i("TEST","downP.x-=-=-=--=-" + downP.x);       break;     case MotionEvent.ACTION_MOVE:       Log.i("TEST","downP.x-=-=-=--=-" + curP.x);        if (downP.x < 200) {          if (curP.x - downP.x > 500) {            return false;          }       }        break;     case MotionEvent.ACTION_UP:        break;      default:       break;     }     return super.ontouchEvent(event);   } 

OK,在如上代码中,可以看到我们做了一个判断,当触摸点像素距离屏幕最左边200像素以内时,滑动才有效果,否则执行父类方法,没了? 我仅举这一例子说明可能存在的一些问题,当然,如果布局中也有其它控件出现类似的情况,那么跟 这个一样,自己定义一个vIEw,重写它的 触摸事件,(其实自定义view很简单的,哥刚开始也觉得很难,后来 也就那样....) ,当然,直接finish可能会显得太单一,你们可以充分发挥你们的想象,可以添加一些动画进去,使得界面更加炫,

OK,今天就扯到这里,吃饭 time...

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

以上是内存溢出为你收集整理的Android右滑返回上一个界面的实现方法全部内容,希望文章能够帮你解决Android右滑返回上一个界面的实现方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1144043.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存