使用动画效果实现隐藏,显示ToolBar

一:布局文件




    

        

            
        
    

    

二:在values/styles.xml,AppTheme里添加以去除原来的actionbar

false
true

三:为两个button添加监听事件,隐藏,显示ToolBar

记得加上
setSupportActionBar(toolbar);
hide.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                curY = toolbar.getTranslationY();//获取当前的y轴位置
                height = toolbar.getHeight();
                ObjectAnimator oa = ObjectAnimator.ofFloat(toolbar,"translationY",curY,-height);
                oa.setDuration(1000);
                oa.start();
            }
        });

        show.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                curY = toolbar.getTranslationY();
                ObjectAnimator oa = ObjectAnimator.ofFloat(toolbar,"translationY",curY,0f);//toolbar原位置是0
                oa.setDuration(2000);
                oa.start();
            }
        });

四:后面发现这种方式隐藏的toolbar会在原处留下空白,所以这种方法不行,后来通过Google,发现隐藏toolbar的方法是使用多种控件的混合,CoordinatorLayout,AppBarLayout,Toolbar,NestedScrollView,具体实现如下:

Toolbar在activity中的设置与之前的相同,主要是布局文件



    

        

    

    //这句很重要

        

            

                
            
        
    

在res/values/strings.xml里添加

    android.support.design.widget.AppBarLayout$ScrollingViewBehavior

五:若要进一步学习CoordinatorLayout,AppBarLayout,Toolbar,NestedScrollView的使用,可参考

你可能感兴趣的:(使用动画效果实现隐藏,显示ToolBar)