android 右滑返回(activity和FragmentActivity)

首先,activity的右滑返回:

1.下载库文件,导入module

2.写一个 BaseActivity 继承 SwipeBackActivity:

public class BaseActivity extends SwipeBackActivity {

    private SwipeBackLayout mSwipeBackLayout;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mSwipeBackLayout = getSwipeBackLayout();
        //设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM
        mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
        //mSwipeBackLayout.setEdgeSize(200);//滑动删除的效果只能从边界滑动才有效果,如果要扩大touch的范围,可以调用这个方法
    }
}

让其他activity继承BaseActivity即可,这样就有右滑返回的功能了。

最后你还需要在清单文件中,AppTheme 主题上,加上这个属性,要不然activity的背景应该是黑色的,很难看:

(我没加这个属性运行起来也没什么影响,不过看网上都说要加)

 <item name="android:windowIsTranslucent">true</item>
按系统自带返回键也有动画效果:
/**
     * 当按下返回键时
     */
    @Override
    public void onBackPressed() {
        scrollToFinishActivity();//左滑退出activity
    }
不想让activity右滑返回,在onCreate()里调用
setSwipeBackEnable(false);
 <item name="android:windowIsTranslucent">true</item>
按系统自带返回键也有动画效果:
/**
     * 当按下返回键时
     */
    @Override
    public void onBackPressed() {
        scrollToFinishActivity();//左滑退出activity
    }
不想让activity右滑返回,在onCreate()里调用
setSwipeBackEnable(false);

FragmentActivity的右滑返回:

1.下载库文件并导入module(还是上面那个库文件);

2.写一个BaseFragmentActivity继承FragmentActivity,并实现SwipeBackActivityBase

public class BaseFragmentActivity extends FragmentActivity 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();
    }
}

让其他需要继承FragmentActivity的继承BaseFragmentActivity即可

其他的跟上面的一样

猜你喜欢

转载自blog.csdn.net/pxcz110112/article/details/80348056