Android 侧滑栏

DrawerLayout

继承与ViewGroup,可以当作是FramLayout,可以指定其子控件android:layout_gravity属性设置左边侧滑或者右边侧滑,start是左边

addDrawerListener

可以通过设置DrawerListener来监听滑动过程中的变化

drawerlayout.addDrawerListener(new DrawerListener() {
            @Override
            public void onDrawerStateChanged(int newState) {

            }
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
                View content = drawerlayout.getChildAt(0);
                View menu = drawerView;
                float scale = 1-slideOffset;//1~0
                float leftScale = (float) (1-0.3*scale);
                float rightScale = (float) (0.7f+0.3*scale);//0.7~1
                menu.setScaleX(leftScale);//1~0.7
                menu.setScaleY(leftScale);//1~0.7

                content.setScaleX(rightScale);
                content.setScaleY(rightScale);
                content.setTranslationX(menu.getMeasuredWidth()*(1-scale));//0~width

            }

            @Override
            public void onDrawerOpened(View drawerView) {

            }

            @Override
            public void onDrawerClosed(View drawerView) {

            }
        });

与Toolbar组合使用

toolbar = (Toolbar)findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        
        drawerlayout = (DrawerLayout)findViewById(R.id.drawerlayout);
        
        ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle(this, drawerlayout, toolbar, 
        R.string.drawer_open, R.string.drawer_close);
        drawerToggle.syncState();

        drawerlayout.addDrawerListener(drawerToggle);//不设置这里,左边的图标不会产生动画

与NavigationView组合使用

可用于快速的制定左面的菜单栏


    
    
    
    

对应menu文件



    
    
    
    
        
            
            
        
      


github:
https://github.com/CodeHurricane/SlideDemo

你可能感兴趣的:(Android 侧滑栏)