使用xposed更改掘金的側滑退出的觸發範圍(左撇子,掘金的這個側滑退出的體驗一言難盡)
阿新 • • 發佈:2018-10-31
緣由
由於個人是左撇子,用左手玩手機居多,刷掘金的時候,因為掘金的側滑退出的範圍是在太大,個人手機x軸上觸發範圍超過200px,上下滑動詳情介面,經常同時觸發滑動回退,實講,體驗非常差。
操作
1.定位程式碼位置
掘金用了樂加固,直接用apktool無法解出來,脫殼之類的操作,我也還沒接觸過,所以這裡直接在xposed上找了個直接可以更改應用為除錯模式(android:debuggable="true")的外掛,然後使用androidstudio自帶的 Profiler的cup板塊,錄製一個執行(我的手機還是7.0)
2.xposed 大法
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);
})
複製程式碼
通過以上程式碼也就簡單的實現縮小側滑觸發範圍的功能。
終語
其實也向掘金提出過這個側滑的問題,當然到目前為止的版本都沒有調整,這裡操作只是為了方便個人的使用。