因爲我的是左撇子,用左手玩手機居多,刷掘金的時候,由於掘金的側滑退出的範圍是在太大,我的手機x軸上觸發範圍超過200px,上下滑動詳情界面,常常同時觸發滑動回退,實講,體驗很是差。android
1.定位代碼位置
掘金用了樂加固,直接用apktool沒法解出來,脫殼之類的操做,我也還沒接觸過,因此這裏直接在xposed上找了個直接能夠更改應用爲調試模式(android:debuggable="true")的插件,而後使用androidstudio自帶的 Profiler的cup板塊,錄製一個執行(個人手機仍是7.0)bash
Class c = XposedHelpers.findClass("im.juejin.android.base.views.swipebacklayout.SwipeBackLayout"
, lpparam.classLoader);
XposedHelpers.findAndHookMethod(c, "onInterceptTouchEvent",
MotionEvent.class
, new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.beforeHookedMethod(param);
}
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
if (param != null && param.args[0] instanceof MotionEvent) {
// 獲取onInterceptTouchEvent的參數
MotionEvent me = (MotionEvent) param.args[0];
// thisObject就是SwipeBackLayout也就是View,因此這裏直接經過getContext獲取context
Context context = ((View) param.thisObject).getContext();
if (me.getX() < ViewConfiguration.get(context).getScaledEdgeSlop()) {
super.afterHookedMethod(param);
return;
}
}
param.setResult(false);
})
複製代碼
經過以上代碼也就簡單的實現縮小側滑觸發範圍的功能。ide
其實也向掘金提出過這個側滑的問題,固然到目前爲止的版本都沒有調整,這裏操做只是爲了方便我的的使用。ui