Android使用SlidingPaneLayout实现仿IOS滑动返回
来源:互联网 发布:应用程序制作软件 u 编辑:程序博客网 时间:2024/06/06 06:55
android supportV4包提供了一个强大的Layout——SlidingPaneLayout,这个布局可以实现侧滑菜单,关于怎么使用这里就不再介绍了,搜一下就会有很多使用的例子,这里只介绍使用SlidingPaneLayout实现滑动返回。
思路:
1.将SlidingPaneLayout左侧view背景设置为透明;
2.监听滑动事件,当左侧view完全展示时关闭当前Activity。
代码很简单
public class DragBackLayout extends SlidingPaneLayout implements SlidingPaneLayout.PanelSlideListener { private Context context; private Activity activity; private boolean mFirstLayout = true; public DragBackLayout(Context context, AttributeSet attrs) { super(context, attrs); this.context = context; } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); initView(); } private void initView(){ //如果已经添加过,则不再添加 if(!mFirstLayout){ return; } ViewGroup.LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); //透明布局 FrameLayout transparentLayout = new FrameLayout(context); //设置透明背景 transparentLayout.setBackgroundColor(Color.TRANSPARENT); addView(transparentLayout, 0, lp); mFirstLayout = false; } /** * 设置滑动返回 * @param activity */ public void setDragBack(Activity activity){ setPanelSlideListener(this); this.activity = activity; } @Override public void onPanelSlide(View panel, float slideOffset) { } @Override public void onPanelOpened(View panel) { if(this.activity != null){ activity.finish(); activity.overridePendingTransition(0, 0); } } @Override public void onPanelClosed(View panel) { }}
页面布局:
<?xml version="1.0" encoding="utf-8"?><com.lc.view.DragBackLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_test" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000"> <android.support.v7.widget.RecyclerView android:id="@+id/activity_test_rv" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout></com.lc.view.DragBackLayout>
Java代码
dbl = (DragBackLayout) findViewById(R.id.activity_test); dbl.setDragBack(this);
效果
阅读全文
0 0
- Android使用SlidingPaneLayout实现仿IOS滑动返回
- SlidingPaneLayout实现Activity滑动返回
- Android-通过SlidingPaneLayout高仿微信6.2最新版手势滑动返回(一)
- Android-通过SlidingPaneLayout高仿微信6.2最新版手势滑动返回(一)
- Android-通过SlidingPaneLayout高仿微信6.2最新版手势滑动返回(一)
- 仿iOS滑动返回效果
- Android滑动菜单的简单实现(SlidingPaneLayout)
- Android滑动菜单的简单实现(SlidingPaneLayout)
- iOS实现滑动返回
- Android SlidingPaneLayout的使用
- 利用SlidingPaneLayout仿Android QQ5.0侧滑
- Android仿百度贴吧看帖滑动返回效果
- android SlidingPaneLayout的基本使用
- ios 仿facebook 滑动导航菜单实现
- android仿IOS,滑动隐藏底部ScrollView
- android开发仿IOS滑动开关
- 【Android】仿IOS的滑动按钮
- Android仿IOS ViewPager滑动进度条
- vsftp配置
- BZOJ 4735 你的生命已如风中残烛
- HTTP和HTTPS
- ( 笔记)android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
- Android使用SlidingPaneLayout实现仿IOS滑动返回
- Qt:在QML中自定义贝塞尔动画曲线
- Android
- http://blog.duicode.com/category/bianchengxuexi/android/page/2
- TimeUnit详解
- springMvc配置数据库
- MySQL的C语言API功能介绍
- Javascript之数组的基本操作
- python中pandas.DataFrame对行与列求和及添加新行与列示例