Android使用DrawerLayout仿qq6.6版本側滑效果


 

一講到側滑菜單,我相信大家都會想到一個開源控件SlidingMenu,在google還沒有出來DrawerLayout的時候幾乎都是使用Slidingmenu來實現側滑效果,可以說是效果很不錯,自從google出了Drawerlayout以后很多公司就使用了Drawerlayout比如 滴滴打車等等。那么今天我們利用drawerlayout來實現qq6.6最新的側滑效果。首先來看看Drawerlayout默認的效果:

 

和目前最新版的qq的側滑還是不一樣的區別就是內容頁面沒有跟隨向右滑動,而是菜單直接覆蓋在內容上,來看一張QQ的樣式圖

 

 

這樣大家可以看到區別了,其實我們只要在滑動左面菜單的時候讓內容頁面跟隨滑動就行了,首先我們看看DrawerLayout有沒有給我們監聽滑動的監聽,哈哈,翻了一下源碼我們找到了這個方法 onDrawerSize方法;只要實現setDrawerListener回調就行了代碼如下:

 

[java]  view plain  copy
 
  1. drawer.setDrawerListener(new DrawerLayout.DrawerListener() {  
  2.            @Override  
  3.            public void onDrawerSlide(View drawerView, float slideOffset) {  
  4.                //獲取屏幕的寬高  
  5.                WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);  
  6.                Display display = manager.getDefaultDisplay();  
  7.                //設置右面的布局位置  根據左面菜單的right作為右面布局的left   左面的right+屏幕的寬度(或者right的寬度這里是相等的)為右面布局的right  
  8.                right.layout(left.getRight(), 0, left.getRight() + display.getWidth(), display.getHeight());  
  9.            }  
  10.            @Override  
  11.            public void onDrawerOpened(View drawerView) {  
  12.                  
  13.            }  
  14.            @Override  
  15.            public void onDrawerClosed(View drawerView) {  
  16.                  
  17.            }  
  18.            @Override  
  19.            public void onDrawerStateChanged(int newState) {  
  20.                  
  21.            }  
  22.        });  

然后在看看我們改變的效果吧:

 

 

是不是有那么點意思了呢,哈哈,今天就開到這里了。最后附上源碼:https://github.com/dalong982242260/DrawLayoutMenu

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM