0

リストをDrawerLayout含む があります。スワイプクローズを無効にしたいので、閉じる方法は戻るボタンをクリックするか、引き出しの非アクティブ領域をクリックすることです。

この動作を実装する良い方法はありますか?

4

2 に答える 2

1

Aakash Goyal の答えは半分のトリックを行いました:

Indeed 無効ジェスチャを使用して引き出しロック モードを設定することはDrawerLayout.LOCK_MODE_LOCKED_CLOSED、私が望んでいたとおりです。ただし、その場合、[戻る] ボタンを押して引き出しを閉じることもできませんでした。

そのため、バック プレスを傍受して引き出しを閉じるためのコードも追加しました。

mDrawerLayout.setOnKeyListener(new OnKeyListener() 
{           
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) 
    {
        if( keyCode == KeyEvent.KEYCODE_BACK )
        {
            if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT))
            {
                mDrawerLayout.closeDrawer(Gravity.RIGHT);
                return true;
            }
        }
        return false;
    }
});

また、引き出しが閉じたときにロックモードをロック解除に変更しました-スワイプで開くことを許可したいからです。

于 2013-11-22T11:04:59.677 に答える
1

setDrawerLockMode()Navigation Drawer の機能をDrawerLayout.LOCK_MODE_LOCKED_CLOSEDパラメーターとして使用して、ジェスチャーを無効にすることができます

于 2013-11-21T20:10:45.380 に答える