摘要:是一个好用的第三方库特别是,因为是中文,代码也很简单,主要是以下几个文件以及默认继承自的。的使用依赖,但是其使用了较高版本中的官方类,不过方法是直接引用了一个文件。使用库的需要在中设置即可。
SwipeBackLayout
SwipeBackLayout是一个好用的第三方库(特别是README,因为是中文T.T),代码也很简单,主要是以下几个文件:
Utils.java
SwipeBackLayout.java
ViewDragHelper.java
以及默认继承自FragmentActivity的SwipeBackActivity。
SwipeBackLayout的使用依赖android-support-4.jar,但是其使用了较高版本中的ViewDragHelper官方类,不过方法是直接引用了一个文件。
AppCompatActivity的使用新时代中,经历了ActionBarActivity之后,迎来了新的AppCompatActivity,对于继承自FragmentActivity的SwipeBackActivity自然是不够用,不过好在SwipeBackActivity结构简单,只需要模仿代码中SwipeBackActivity的写法,继承自AppCompatActivity即可。
public class AppCompatSwipeBackActivity extends AppCompatActivity implements SwipeBackActivityBase { private SwipeBackActivityHelper mHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mHelper = new SwipeBackActivityHelper(this); mHelper.onActivityCreate();; } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); mHelper.onPostCreate(); } @Override public View findViewById(int id) { View v = super.findViewById(id); if (v == null && mHelper != null) { return mHelper.findViewById(id); } return v; } @Override public SwipeBackLayout getSwipeBackLayout() { return mHelper.getSwipeBackLayout(); } @Override public void setSwipeBackEnable(boolean enable) { getSwipeBackLayout().setEnableGesture(enable); } @Override public void scrollToFinishActivity() { Utils.convertActivityToTranslucent(this); getSwipeBackLayout().scrollToFinishActivity(); } }
使用SwipeBackLayout库的Activity需要在Theme中设置
- true
即可。
参考资料
ViewDragHelper的使用 ViewDragHelper特性ViewDragHelper.Callback连接了ViewDragHelper和其需要处理的View(其实必须是ViewGroup)
ViewDragHelper必须通过工程静态方法ViewDragHelper.create创建
可以指定拖动方向
可以检测是否触及边缘
ViewDragHelper不直接处理拖动的View,而是通过callback使其容器对View进行操作
ViewDragHelper本质是分析OnInterceptTouchEvent和OnTouchEvent的MotionEvent参数,从而改变容器中被拖动的子View位置
ViewDragHelper是在自定义Layout中而不是在一个任意的Layout中使用。 使用方法文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/12452.html
摘要:效果演示初始状态滑动中状态结束状态这是目前实现在中的效果。在中采用的方案是使用一个叫的未公开的,再配合中把设置为,即可实现上层的背景为透明。使用这个回调进行一些是否可以滑动以及滑动距离的判定。实现这个效果就是这么简单欢迎关注我以及 效果演示 初始状态 showImg(https://segmentfault.com/img/bVmEJE); 滑动中状态 showImg(http...
摘要:将拼图按九宫格切割,生成添加到并进行排列。控制滑动边界的实现。控制在水平方向的滑动,主要用来限定滑动的左右边界。和配合实现松手后的动画效果。交换两个的值判断是否拼图完成。 前言 最近一段时间看了一些介绍ViewDragHelper的博客,感觉这是一个处理手势滑动的神奇,看完以后就想做点东西练练手,于是就做了这个Android拼图小游戏。 先上个效果图 showImg(https://s...
摘要:将拼图按九宫格切割,生成添加到并进行排列。控制滑动边界的实现。控制在水平方向的滑动,主要用来限定滑动的左右边界。和配合实现松手后的动画效果。交换两个的值判断是否拼图完成。 前言 最近一段时间看了一些介绍ViewDragHelper的博客,感觉这是一个处理手势滑动的神奇,看完以后就想做点东西练练手,于是就做了这个Android拼图小游戏。 先上个效果图 showImg(https://s...
摘要:是对操作的回调,绝对多数手势操作都是在这个回调中完成。为了让帮助我们简化手势操作,所以还需为它传入相关的。分别调用的与来简化手势的操作判断。将手势操作全部交由来实现。有了的捕获判断,接下来对水平方向的操作进行判断。 在Android中避免不了自定义ViewGroup,来实现我们原生控件所不能满足的需求。尤其是复杂的ViewGroup实现,手势的处理是避免不了的。我们要针对不同的View...
摘要:通过在自定义的内部使用使得给自定义的在水平方向上并排按序添加多个子可以实现水平左右滚动的效果类似于官方解释如下不做翻译原汁原味的英语更易理解使用内部定义了一个静态内部类我们需要重写根据需要重写相关的方法在你的自定义的方法内调用在方法内部调用 通过在自定义的ViewGroup内部使用ViewDragHelper,使得给自定义的ViewGroup在水平方向上并排按序添加多个子View(Vi...
阅读 797·2021-11-25 09:43
阅读 998·2021-09-03 10:44
阅读 398·2019-08-30 13:13
阅读 2658·2019-08-30 13:11
阅读 1806·2019-08-30 12:59
阅读 876·2019-08-29 15:32
阅读 1450·2019-08-29 15:25
阅读 725·2019-08-29 12:24