使用swipebacklayout实现ios右滑退出效果及注意事项
android和ios的趋同化,导致android需要实现大量API未提供的功能,本文简单介绍一个简单流畅的swipebacklayout第三方库的使用
首先在你的gradle中引用:
compile'me.imid.swipebacklayout.lib:library:1.0.0'
最新版
1 在你的activity基类中实现:
SwipeBackActivityBase
接口2 申明一个helper类
private SwipeBackActivityHelper mHelper;3 初始化基类,并设置为右滑:
private void initSwipeBackLayout() {
mHelper = new SwipeBackActivityHelper(this);
mHelper.onActivityCreate();
getSwipeBackLayout().setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
}4 实现 SwipeBackActivityBase接口
@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(getActivity());
getSwipeBackLayout().scrollToFinishActivity();
}
重点提醒
1 主题使用的style必须加入下面这行,不然背景会是黑色
<item name="android:windowIsTranslucent">true</item>
2 将你的app下最开始的Activity
的使用背景不为透明的主题,否则在大部分android4.4的手机上会出现背景看到桌面的情况