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

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

這樣大家可以看到區(qū)別了,其實(shí)我們只要在滑動(dòng)左面菜單的時(shí)候讓內(nèi)容頁(yè)面跟隨滑動(dòng)就行了,首先我們看看DrawerLayout有沒(méi)有給我們監(jiān)聽(tīng)滑動(dòng)的監(jiān)聽(tīng),哈哈,翻了一下源碼我們找到了這個(gè)方法 onDrawerSize方法;只要實(shí)現(xiàn)setDrawerListener回調(diào)就行了代碼如下:
drawer.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
//獲取屏幕的寬高
WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display display = manager.getDefaultDisplay();
//設(shè)置右面的布局位置 根據(jù)左面菜單的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) {
}
});
然后在看看我們改變的效果吧:

是不是有那么點(diǎn)意思了呢,哈哈,今天就開(kāi)到這里了。
最后附上源碼:https://github.com/dalong982242260/DrawLayoutMenu
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
-
Android自定義view實(shí)現(xiàn)有header和footer作為layout使用的滾動(dòng)控件
這篇文章主要介紹了Android自定義view實(shí)現(xiàn)有header和footer的滾動(dòng)控件,可以在XML中當(dāng)Layout使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧 2022-11-11
-
Android Secret Code(輸入字符彈出手機(jī)信息)詳解
這篇文章主要介紹了Android Secret Code(輸入字符彈出手機(jī)信息)詳解的相關(guān)資料,需要的朋友可以參考下 2016-11-11
-
搭建mac使用Charles抓包安卓app環(huán)境配置過(guò)程
這篇文章主要為大家介紹了mac使用Charles抓包,安卓app環(huán)境搭建的配置過(guò)程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步 2022-02-02
-
Webview實(shí)現(xiàn)android簡(jiǎn)單的瀏覽器實(shí)例代碼
這篇文章主要介紹了Webview實(shí)現(xiàn)android簡(jiǎn)單的瀏覽器實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下 2016-02-02
-
Android自定義ViewGroup實(shí)現(xiàn)朋友圈九宮格控件
在我們的實(shí)際應(yīng)用中,經(jīng)常需要用到自定義控件,比如自定義圓形頭像,自定義計(jì)步器等等,這篇文章主要給大家介紹了關(guān)于Android自定義ViewGroup實(shí)現(xiàn)朋友圈九宮格控件的相關(guān)資料,需要的朋友可以參考下 2021-07-07
-
Android實(shí)現(xiàn)MVVM架構(gòu)數(shù)據(jù)刷新詳解流程
MVVM架構(gòu)模式,即Model-View-ViewModel三個(gè)層級(jí),MVVM模式出來(lái)的時(shí)間已經(jīng)很長(zhǎng)了,網(wǎng)上關(guān)于MVVM模式的解析也有很多,我這里只說(shuō)一下我自己的理解,基本上是和MVP模式相比較的一個(gè)差異 2021-10-10
-
Android簽名文件轉(zhuǎn)化為pk8和pem的實(shí)現(xiàn)
這篇文章主要介紹了Android簽名文件轉(zhuǎn)化為pk8和pem的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2020-03-03
-
Android開(kāi)發(fā)實(shí)現(xiàn)的圖片點(diǎn)擊切換功能示例
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)的圖片點(diǎn)擊切換功能,涉及Android ImageView組件創(chuàng)建、布局及實(shí)現(xiàn)圖形切換相關(guān)操作技巧,需要的朋友可以參考下 2019-04-04
最新評(píng)論
一講到側(cè)滑菜單,我相信大家都會(huì)想到一個(gè)開(kāi)源控件SlidingMenu,在google還沒(méi)有出來(lái)DrawerLayout的時(shí)候幾乎都是使用Slidingmenu來(lái)實(shí)現(xiàn)側(cè)滑效果,可以說(shuō)是效果很不錯(cuò),自從google出了Drawerlayout以后很多公司就使用了Drawerlayout比如 滴滴打車(chē)等等。那么今天我們利用drawerlayout來(lái)實(shí)現(xiàn)qq6.6最新的側(cè)滑效果。首先來(lái)看看Drawerlayout默認(rèn)的效果:
和目前最新版的qq的側(cè)滑還是不一樣的區(qū)別就是內(nèi)容頁(yè)面沒(méi)有跟隨向右滑動(dòng),而是菜單直接覆蓋在內(nèi)容上,來(lái)看一張QQ的樣式圖
這樣大家可以看到區(qū)別了,其實(shí)我們只要在滑動(dòng)左面菜單的時(shí)候讓內(nèi)容頁(yè)面跟隨滑動(dòng)就行了,首先我們看看DrawerLayout有沒(méi)有給我們監(jiān)聽(tīng)滑動(dòng)的監(jiān)聽(tīng),哈哈,翻了一下源碼我們找到了這個(gè)方法 onDrawerSize方法;只要實(shí)現(xiàn)setDrawerListener回調(diào)就行了代碼如下:
drawer.setDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerSlide(View drawerView, float slideOffset) { //獲取屏幕的寬高 WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); Display display = manager.getDefaultDisplay(); //設(shè)置右面的布局位置 根據(jù)左面菜單的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) { } });
然后在看看我們改變的效果吧:
是不是有那么點(diǎn)意思了呢,哈哈,今天就開(kāi)到這里了。
最后附上源碼:https://github.com/dalong982242260/DrawLayoutMenu
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android自定義view實(shí)現(xiàn)有header和footer作為layout使用的滾動(dòng)控件
這篇文章主要介紹了Android自定義view實(shí)現(xiàn)有header和footer的滾動(dòng)控件,可以在XML中當(dāng)Layout使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-11-11Android Secret Code(輸入字符彈出手機(jī)信息)詳解
這篇文章主要介紹了Android Secret Code(輸入字符彈出手機(jī)信息)詳解的相關(guān)資料,需要的朋友可以參考下2016-11-11搭建mac使用Charles抓包安卓app環(huán)境配置過(guò)程
這篇文章主要為大家介紹了mac使用Charles抓包,安卓app環(huán)境搭建的配置過(guò)程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02Webview實(shí)現(xiàn)android簡(jiǎn)單的瀏覽器實(shí)例代碼
這篇文章主要介紹了Webview實(shí)現(xiàn)android簡(jiǎn)單的瀏覽器實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-02-02Android自定義ViewGroup實(shí)現(xiàn)朋友圈九宮格控件
在我們的實(shí)際應(yīng)用中,經(jīng)常需要用到自定義控件,比如自定義圓形頭像,自定義計(jì)步器等等,這篇文章主要給大家介紹了關(guān)于Android自定義ViewGroup實(shí)現(xiàn)朋友圈九宮格控件的相關(guān)資料,需要的朋友可以參考下2021-07-07Android實(shí)現(xiàn)MVVM架構(gòu)數(shù)據(jù)刷新詳解流程
MVVM架構(gòu)模式,即Model-View-ViewModel三個(gè)層級(jí),MVVM模式出來(lái)的時(shí)間已經(jīng)很長(zhǎng)了,網(wǎng)上關(guān)于MVVM模式的解析也有很多,我這里只說(shuō)一下我自己的理解,基本上是和MVP模式相比較的一個(gè)差異2021-10-10Android簽名文件轉(zhuǎn)化為pk8和pem的實(shí)現(xiàn)
這篇文章主要介紹了Android簽名文件轉(zhuǎn)化為pk8和pem的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android開(kāi)發(fā)實(shí)現(xiàn)的圖片點(diǎn)擊切換功能示例
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)的圖片點(diǎn)擊切換功能,涉及Android ImageView組件創(chuàng)建、布局及實(shí)現(xiàn)圖形切換相關(guān)操作技巧,需要的朋友可以參考下2019-04-04