How to detect that the DrawerLayout started opening?

前端 未结 7 2108
旧时难觅i
旧时难觅i 2020-12-01 04:52

So I have tabs that I want to hide when the Navigation Drawer starts opening. The code I have hides them when it finished opening, but it\'s not what I want

7条回答
  •  心在旅途
    2020-12-01 05:23

    Currently accepted answer by Pavel Dudka is already deprecated. Please use mDrawerLayout.addDrawerListener() method instead to set a listener.

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
    
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
                //Called when a drawer's position changes.
            }
    
            @Override
            public void onDrawerOpened(View drawerView) {
                //Called when a drawer has settled in a completely open state.
                //The drawer is interactive at this point.
                // If you have 2 drawers (left and right) you can distinguish 
                // them by using id of the drawerView. int id = drawerView.getId(); 
                // id will be your layout's id: for example R.id.left_drawer            
            }
    
            @Override
            public void onDrawerClosed(View drawerView) {
                // Called when a drawer has settled in a completely closed state.
            }
    
            @Override
            public void onDrawerStateChanged(int newState) {
                // Called when the drawer motion state changes. The new state will be one of STATE_IDLE, STATE_DRAGGING or STATE_SETTLING.
            }
        });
    

    Works perfectly. Cheers!

提交回复
热议问题