Android使用DrawerLayout仿QQ6.6版?zhèn)然Ч?/h1>
更新時間:2017年12月02日 10:28:59 作者:超級無敵小壞蛋
這篇文章主要為大家詳細介紹了Android使用DrawerLayout仿QQ6.6版?zhèn)然Ч哂幸欢ǖ膮⒖純r值,感興趣的小伙伴們可以參考一下
一講到側滑菜單,我相信大家都會想到一個開源控件SlidingMenu,在google還沒有出來DrawerLayout的時候幾乎都是使用Slidingmenu來實現側滑效果,可以說是效果很不錯,自從google出了Drawerlayout以后很多公司就使用了Drawerlayout比如 滴滴打車等等。那么今天我們利用drawerlayout來實現qq6.6最新的側滑效果。首先來看看Drawerlayout默認的效果:

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

這樣大家可以看到區(qū)別了,其實我們只要在滑動左面菜單的時候讓內容頁面跟隨滑動就行了,首先我們看看DrawerLayout有沒有給我們監(jiān)聽滑動的監(jiān)聽,哈哈,翻了一下源碼我們找到了這個方法 onDrawerSize方法;只要實現setDrawerListener回調就行了代碼如下:
drawer.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
//獲取屏幕的寬高
WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display display = manager.getDefaultDisplay();
//設置右面的布局位置 根據左面菜單的right作為右面布局的left 左面的right+屏幕的寬度(或者right的寬度這里是相等的)為右面布局的right
right.layout(left.getRight(), 0, left.getRight() + display.getWidth(), display.getHeight());
}
@Override
public void onDrawerOpened(View drawerView) {
}
@Override
public void onDrawerClosed(View drawerView) {
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
然后在看看我們改變的效果吧:

是不是有那么點意思了呢,哈哈,今天就開到這里了。
最后附上源碼:https://github.com/dalong982242260/DrawLayoutMenu
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
-
Android自定義view實現有header和footer作為layout使用的滾動控件
這篇文章主要介紹了Android自定義view實現有header和footer的滾動控件,可以在XML中當Layout使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧 2022-11-11
-
Android Secret Code(輸入字符彈出手機信息)詳解
這篇文章主要介紹了Android Secret Code(輸入字符彈出手機信息)詳解的相關資料,需要的朋友可以參考下 2016-11-11
-
搭建mac使用Charles抓包安卓app環(huán)境配置過程
這篇文章主要為大家介紹了mac使用Charles抓包,安卓app環(huán)境搭建的配置過程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步 2022-02-02
最新評論
一講到側滑菜單,我相信大家都會想到一個開源控件SlidingMenu,在google還沒有出來DrawerLayout的時候幾乎都是使用Slidingmenu來實現側滑效果,可以說是效果很不錯,自從google出了Drawerlayout以后很多公司就使用了Drawerlayout比如 滴滴打車等等。那么今天我們利用drawerlayout來實現qq6.6最新的側滑效果。首先來看看Drawerlayout默認的效果:
和目前最新版的qq的側滑還是不一樣的區(qū)別就是內容頁面沒有跟隨向右滑動,而是菜單直接覆蓋在內容上,來看一張QQ的樣式圖
這樣大家可以看到區(qū)別了,其實我們只要在滑動左面菜單的時候讓內容頁面跟隨滑動就行了,首先我們看看DrawerLayout有沒有給我們監(jiān)聽滑動的監(jiān)聽,哈哈,翻了一下源碼我們找到了這個方法 onDrawerSize方法;只要實現setDrawerListener回調就行了代碼如下:
drawer.setDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerSlide(View drawerView, float slideOffset) { //獲取屏幕的寬高 WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); Display display = manager.getDefaultDisplay(); //設置右面的布局位置 根據左面菜單的right作為右面布局的left 左面的right+屏幕的寬度(或者right的寬度這里是相等的)為右面布局的right right.layout(left.getRight(), 0, left.getRight() + display.getWidth(), display.getHeight()); } @Override public void onDrawerOpened(View drawerView) { } @Override public void onDrawerClosed(View drawerView) { } @Override public void onDrawerStateChanged(int newState) { } });
然后在看看我們改變的效果吧:
是不是有那么點意思了呢,哈哈,今天就開到這里了。
最后附上源碼:https://github.com/dalong982242260/DrawLayoutMenu
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android自定義view實現有header和footer作為layout使用的滾動控件
這篇文章主要介紹了Android自定義view實現有header和footer的滾動控件,可以在XML中當Layout使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-11-11Android Secret Code(輸入字符彈出手機信息)詳解
這篇文章主要介紹了Android Secret Code(輸入字符彈出手機信息)詳解的相關資料,需要的朋友可以參考下2016-11-11搭建mac使用Charles抓包安卓app環(huán)境配置過程
這篇文章主要為大家介紹了mac使用Charles抓包,安卓app環(huán)境搭建的配置過程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-02-02