开源框架Git地址:https://github.com/ikew0ng/SwipeBackLayout
我的demo地址:http://download.csdn.net/detail/wl1769127285/9648682
框架本身需要注意的事项框架已有说明,不做赘述,写一下自己使用过程中的问题:
1、调用convertToTranslucent
可以使用反射的方法进行调用,但是在Lollipop
中,它的参数变成了两个,而在5.0以下是一个参数,所以需要在源码中对Util.convertActivityToTranslucent
这个方法进行一些修改。
public static void convertActivityToTranslucent(Activity activity) {
try {
Class[] t = Activity.class.getDeclaredClasses();
Class translucentConversionListenerClazz = null;
Class[] method = t;
int len$ = t.length;
for(int i$ = 0; i$ < len$; ++i$) {
Class clazz = method[i$];
if(clazz.getSimpleName().contains("TranslucentConversionListener")) {
translucentConversionListenerClazz = clazz;
break;
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Method var8 = Activity.class.getDeclaredMethod("convertToTranslucent", translucentConversionListenerClazz, ActivityOptions.class);
var8.setAccessible(true);
var8.invoke(activity, new Object[]{null, null});
} else {
Method var8 = Activity.class.getDeclaredMethod("convertToTranslucent", translucentConversionListenerClazz);
var8.setAccessible(true);
var8.invoke(activity, new Object[]{null});
}
} catch (Throwable e) {
}
}
2、 <item name="android:windowIsTranslucent">true</item>的使用,注意需要右滑关闭的activity的Theme才需要有这个属性,不需要的则没有这个属性。
注意:若使用过程中右滑看到了桌面,只需要间栈底的activity的theme设置为没有
<item name="android:windowIsTranslucent">true</item>这个样式即可。