drawerlayout的側(cè)滑效果

drawerlayout的側(cè)滑效果

google官方提供了drawerlayout實(shí)現(xiàn)側(cè)滑抽屜。但是默認(rèn)滑動效果只是顯示抽屜菜單,然后content的內(nèi)容不動,并打上陰影。
qq實(shí)現(xiàn)的側(cè)滑效果比google的默認(rèn)效果更有美感。當(dāng)側(cè)滑的時(shí)候,content的內(nèi)容也跟著側(cè)滑,兩者滑動速度不一樣,有一種層次感。
實(shí)現(xiàn)這種效果主要要監(jiān)聽滑動,drawerlayout提供了一個(gè)監(jiān)聽接口,但是不知道為什么不推薦使用。。。DrawerLayout.DrawerListener。

 drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
                View mContent = drawerLayout.getChildAt(0);
                View mMenu = drawerView;
                float scale = 1 - slideOffset;
//                float rightScale = 0.8f + scale * 0.2f;


                //float leftScale = 1 - 0.3f * scale;
                AnimatorSet set = new AnimatorSet();
                set.playTogether(
                        //        ObjectAnimator.ofFloat(mMenu, "ScaleX", leftScale),
                        // ObjectAnimator.ofFloat(mMenu, "ScaleY", leftScale),
//                    ObjectAnimator.ofFloat(mMenu, "Alpha", 0.6f + 0.4f * (1 - scale)),
//                    ObjectAnimator.ofFloat(mContent, "TranslationX", mMenu.getMeasuredWidth() * (1 - scale)),
                        ObjectAnimator.ofFloat(mContent, "TranslationX", mMenu.getMeasuredWidth() * (1 - scale))
//                    ObjectAnimator.ofFloat(mContent, "PivotX", 0),
//                    ObjectAnimator.ofFloat(mContent, "PivotY", mContent.getMeasuredHeight() / 2)
                );
                set.setDuration(0);
                set.start();
            }

監(jiān)聽接口里有這個(gè)方法onDrawerSlide(View drawerView, float slideOffset),看一下官方文檔:

Paste_Image.png

drawerView就是側(cè)滑的view(抽屜),
slideOffset就是側(cè)滑完成的進(jìn)度(0~1)
接下來就是獲取content對象, View mContent = drawerLayout.getChildAt(0);獲取了這倆個(gè)對象之后就可以通過屬性動畫來實(shí)現(xiàn)任何高大上的側(cè)滑效果了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容