我正在开发一款应用程序,希望通过导航抽屉显示有关屏幕上显示内容的一些额外数据。默认情况下,在单击抽屉之外时,它会被隐藏 - 我想覆盖此行为。我想要的是,只要我在单击抽屉之外,就保持抽屉打开,并将单击事件重定向到底层视图。
这个可行吗?如果无法使用“DrawerLayout”,如何实现此功能?
这个可行吗?如果无法使用“DrawerLayout”,如何实现此功能?
我通过扩展DrawerLayout并覆盖onInterceptTouchEvent来解决了这个问题:
public class CustomDrawerLayout extends DrawerLayout {
// .... Constructors here...
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
final boolean result = super.onInterceptTouchEvent(ev);
if (isDrawerOpen(Gravity.RIGHT)) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP: {
return false;
}
}
}
return result;
}
}
mDrawerLayout.setScrimColor(Color.TRANSPARENT);
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
防止抽屉关闭。 - Ketan Ahir