2120


現在アクションバーの左端と右端にボタンがあり、左端のボタンを押すと左からListViewのDrawerLayoutが出てきて、右端のボタンを押すと右からも同じくListViewのDrawerLayoutが出てくるというような画面を作っています。しかし、左端のボタンを押してからDrawerLayoutが出きらないうちに右端のボタンを押すと、左右のDrawerLayoutが重なって画面に表示されてしまいます。ちなみに左側のDrawerLayoutが出きった状態で右側のボタンを押すと、右側のDrawerLayoutが表示されるとともに左側のDrawerLayoutは閉じます。下記にボタンが押された時のDrawerLayoutに関する処理のコードを記載します。この重なりを回避するにはどこを修正すればよろしいでしょうか？すみませんが、よろしくお願いします。

[code]

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()){
                case android.R.id.home:
                    if (mDrawerLayout.isDrawerOpen(GravityCompat.END)){
                        mDrawerLayout.closeDrawer(GravityCompat.END);
                    }
                    if (mDrawerLayout.isDrawerOpen(GravityCompat.START)){
                        mDrawerLayout.closeDrawer(GravityCompat.START);
                    }else {
                        mDrawerLayout.openDrawer(GravityCompat.START);
                    }
                    break;
                case R.id.action_drawer:
                    if (mDrawerLayout.isDrawerOpen(GravityCompat.START)){
                        mDrawerLayout.closeDrawer(GravityCompat.START);
                    }
                    if (mDrawerLayout.isDrawerOpen(GravityCompat.END)){
                        mDrawerLayout.closeDrawer(GravityCompat.END);
                    }else {
                        mDrawerLayout.openDrawer(GravityCompat.END);
                    }
                    break;
            }
            return super.onOptionsItemSelected(item);
        }
    
[/code]


CC BY-SA 3.0
2014-12-19T06:33:08.053
2110
2014-12-19T08:20:32.470
5210
question
android
左右のDrawerLayoutが重なる


isDrawerOpen()ではなくisDrawerVisible()で判断してみてはどうでしょうか。


CC BY-SA 3.0
2014-12-19T08:20:32.470
2120
2014-12-19T08:20:32.470
4232
2110
answer