簡體   English   中英

不要隱藏導航抽屜

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM