[英]Don't hide navigation drawer
我正在構建一個應用程序,我想通過導航抽屜顯示有關屏幕上顯示的內容的其他數據。 默認情況下,單擊抽屜后它是隱藏的 - 我想覆蓋此行為。 我想要的是保持抽屜打開,只要我點擊它以外,並將點擊事件重定向到基礎視圖。
這可能嗎? 如果沒有抽屜布局,我該如何實現此功能?
我通過擴展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;
}
}
在上面的示例中,您可以在打開右側抽屜時與內容進行交互。 不要忘記在主布局xml文件中將DrawerLayout更改為CustomDrawerLayout。
此外,您可能需要隱藏在布局其余部分上方顯示的陰影疊加層,以用於此用途:
mDrawerLayout.setScrimColor(Color.TRANSPARENT);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.