仿微信的侧滑退出Activity
来源:互联网 发布:淘宝恒源祥羊毛衫价格 编辑:程序博客网 时间:2024/04/30 11:34
用苹果的小伙伴们都会知道,ios系统退出当前的页面只需要向右边侧滑,这是一个非常好的用户体验,但是Android官方并没有出具有这有性质的Activity,所以我们只能辛苦辛苦,自己动手写一个具有这种性质的Activity。
其实写这个自定义的Activity还是非常简单的。我们主要用到一个这个控件SlidingPaneLayout,使用这个控件来模拟我们的这种效果的好处是我们基本不用去管一些手势事件冲突问题,SlidingPaneLayout已经帮我们做好了;
public abstract class BaseActivity extends AppCompatActivity implements SlidingPaneLayout.PanelSlideListener { @Override protected void onCreate(Bundle savedInstanceState) { initSwipeBackFinish(); super.onCreate(savedInstanceState); } /** * 初始化滑动返回 */ private void initSwipeBackFinish() { if (isSupportSwipeBack()) { SlidingPaneLayout slidingPaneLayout = new SlidingPaneLayout(this); //通过反射改变mOverhangSize的值为0,这个mOverhangSize值为菜单到右边屏幕的最短距离, //默认是32dp try { //更改属性 Field field = SlidingPaneLayout.class.getDeclaredField("mOverhangSize"); field.setAccessible(true); field.set(slidingPaneLayout, 0); } catch (Exception e) { e.printStackTrace(); } //设置监听事件 slidingPaneLayout.setPanelSlideListener(this); slidingPaneLayout.setSliderFadeColor(getResources().getColor(android.R.color.transparent)); View leftView = new View(this); leftView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); //在左边添加这个视图 slidingPaneLayout.addView(leftView, 0); //获取到最顶层的视图容器 ViewGroup decor = (ViewGroup) getWindow().getDecorView(); //获取到左边的视图 ViewGroup decorChild = (ViewGroup) decor.getChildAt(0); //设置左边的视图为透明 decorChild.setBackgroundColor(getResources().getColor(android.R.color.transparent)); decor.removeView(decorChild); decor.addView(slidingPaneLayout); //在右边添加这个视图 slidingPaneLayout.addView(decorChild, 1); } } /** * 是否支持滑动退出 */ protected boolean isSupportSwipeBack() { return true; } @Override public void onPanelClosed(View view) { } @Override public void onPanelOpened(View view) { finish(); //设置Activity退出的动画 this.overridePendingTransition(0, R.anim.slide_out_right); } @Override public void onPanelSlide(View view, float v) { }
}
1 0
- 仿微信的侧滑退出Activity
- Activity侧滑退出
- 最简单侧滑退出activity的实现
- 关于activity的退出
- 退出Activity的方法
- 退出所有的Activity
- activity的退出方式
- 退出Activity的方法
- activity的退出功能
- Activity的退出应用程序
- 退出所有的activity
- 仿微信滑动退出Activity
- 仿微信滑动退出Activity
- App退出后,退出所有的Activity
- 关于Activity退出的疑问
- 一次退出所有的activity
- Android退出所有的Activity
- 关于Activity退出的疑问
- 【计算机基础】堆和栈的区别(非数据结构中的堆和栈)
- HDU 2190 简单递推
- AsyncTask
- 二叉树的C++指针实现
- 杭电1284
- 仿微信的侧滑退出Activity
- 验证码图像识别-python
- 算法训练 学做菜
- 双重检查加锁机制--解决线程安全
- 【数据结构】堆
- POJ 3903 —— Stock Exchange 最长上升子序列
- Android OkHttp之 offline cache
- G代码 机器人的CNC实现
- C++标准库简介、与STL的关系。