我drawerlayout设置在左边,但是总是要很靠近屏幕左边才能滑出来,有没有什么方法可以加大滑 30

我drawerlayout设置在左边,但是总是要很靠近屏幕左边才能滑出来,有没有什么方法可以加大滑动反应区域... 我drawerlayout设置在左边,但是总是要很靠近屏幕左边才能滑出来,有没有什么方法可以加大滑动反应区域 展开
 我来答
魔道夜行
2017-04-05 · TA获得超过189个赞
知道答主
回答量:3
采纳率:0%
帮助的人:2529
展开全部
/**
* 抽屉滑动范围控制
* @param activity
* @param drawerLayout
* @param displayWidthPercentage 占全屏的份额0~1
*/
private void setDrawerLeftEdgeSize(Activity activity, DrawerLayout drawerLayout, float displayWidthPercentage) {
if (activity == null || drawerLayout == null)
return;
try {
// find ViewDragHelper and set it accessible
Field leftDraggerField = drawerLayout.getClass().getDeclaredField("mLeftDragger");
leftDraggerField.setAccessible(true);
ViewDragHelper leftDragger = (ViewDragHelper) leftDraggerField.get(drawerLayout);
// find edgesize and set is accessible
Field edgeSizeField = leftDragger.getClass().getDeclaredField("mEdgeSize");
edgeSizeField.setAccessible(true);
int edgeSize = edgeSizeField.getInt(leftDragger);
// set new edgesize
// Point displaySize = new Point();
DisplayMetrics dm = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
edgeSizeField.setInt(leftDragger, Math.max(edgeSize, (int) (dm.widthPixels * displayWidthPercentage)));
} catch (NoSuchFieldException e) {
Log.e("NoSuchFieldException", e.getMessage().toString());
} catch (IllegalArgumentException e) {
Log.e("IllegalArgument", e.getMessage().toString());
} catch (IllegalAccessException e) {
Log.e("IllegalAccessException", e.getMessage().toString());
}
}

这个方法可以解决
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式