android 实现Activity的右滑返回效果
2016-07-19 10:00
309 查看
使用github上的SwipeBackLayout这个开源项目:
https://github.com/ikew0ng/SwipeBackLayout
现在项目中导入SwipeBackLayout模块,或者添加在gradle中添加依赖:
定义基类BaseActivity继承SwipeBackActivity:
publicclassBaseActivity
extends
SwipeBackActivity {
private
SwipeBackLayout mSwipeBackLayout;
@Override
protectedvoidonCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
mSwipeBackLayout = getSwipeBackLayout();
//设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM
mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
}
}
需要有右滑返回的Activity只要继承这个BaseActivity即可。
主页禁止右滑返回需设置:
publicclassMainActivity
extends
BaseActivity {
private
SwipeBackLayout mSwipeBackLayout;
@Override
protectedvoidonCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
mSwipeBackLayout = getSwipeBackLayout();
//设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM
mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
setSwipeBackEnable(false);
//设置滑动的距离
mSwipeBackLayout.setEdgeSize(400);
}
}
现在可以右滑返回了,但是发现滑动时activity的下层是黑色的,在使用的主题中添加下面的属性:
<item name="android:windowIsTranslucent">false</item>
添加到application下面的style中。
http://skykai521.github.io/2016/03/04/SwipeBackLayout%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90/
https://github.com/ikew0ng/SwipeBackLayout
现在项目中导入SwipeBackLayout模块,或者添加在gradle中添加依赖:
compile 'me.imid.swipebacklayout.lib:library:1.0.0'
定义基类BaseActivity继承SwipeBackActivity:
publicclassBaseActivity
extends
SwipeBackActivity {
private
SwipeBackLayout mSwipeBackLayout;
@Override
protectedvoidonCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
mSwipeBackLayout = getSwipeBackLayout();
//设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM
mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
}
}
需要有右滑返回的Activity只要继承这个BaseActivity即可。
主页禁止右滑返回需设置:
publicclassMainActivity
extends
BaseActivity {
private
SwipeBackLayout mSwipeBackLayout;
@Override
protectedvoidonCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
mSwipeBackLayout = getSwipeBackLayout();
//设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM
mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
setSwipeBackEnable(false);
//设置滑动的距离
mSwipeBackLayout.setEdgeSize(400);
}
}
现在可以右滑返回了,但是发现滑动时activity的下层是黑色的,在使用的主题中添加下面的属性:
<item name="android:windowIsTranslucent">false</item>
添加到application下面的style中。
解决SwipeBackLayout滑动返回时显示桌面而不是显示上一层的Bug:
在那个Activity的style下添加设置即可
<item name="android:windowIsTranslucent">false</item>
SwipeBackLayout源代码分析参看:
http://skykai521.github.io/2016/03/04/SwipeBackLayout%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90/相关文章推荐
- AndroidTextView在xml初始化的问题
- Android与js交互的设置
- 用textView 画圆 更换颜色 动态添加到布局里面
- Android好用且常用的插件及工具
- Android自定义图片自动轮播控件:imagecycleview
- [置顶] Android 蓝牙开发(二)Ble 开发(android4.3)
- Android ProGuard混淆(二)
- Android ExpandableListview+Listview嵌套使用出现的问题解决办法
- android ViewPager滑动事件讲解
- Android优化图片加载所占用的内存
- setContentView 与 Window、PhoneWindow及DecorView
- [Android]仿IOS选择拍照相册底部弹出
- android studio中如何设置注释模板
- Android应用性能测试之CPU和内存占用
- Android 设计模式 笔记 - 状态模式
- Maven管理Android项目
- 在工具类里获取context 上下文对象 Android
- Android中SQLite应用详解
- Android官方文档之User Interface(Settings)
- iOS/Android·全球