基于Goolgle最新NavigationDrawer实现全屏水平平移
生活随笔
收集整理的這篇文章主要介紹了
基于Goolgle最新NavigationDrawer实现全屏水平平移
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
常見實現App 上面側邊欄菜單之前使用SlidingMenu,現在發現Goolgle原生NavigationDrawer也挺好用。但是細心的開發者們發現NavigationDrawer沒有類似SlidingMenu全屏平移的效果,其實不用著急,簡單修改即可實現此效果。
話不多說上代碼:
//.....省略部分代碼private DrawerLayout.SimpleDrawerListener simpleDrawerListener;//側邊欄基礎布局DrawerLayoutprivate NavigationView navigationView;//側邊欄控件private View contentView;//主體內容布局//.....省略部分代碼@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_navigation_drawer);//.....省略部分代碼drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);contentView = findViewById(R.id.content);//.....省略部分代碼simpleDrawerListener = new DrawerLayout.SimpleDrawerListener() {@Overridepublic void onDrawerSlide(View drawerView, float slideOffset) {super.onDrawerSlide(drawerView, slideOffset);System.out.println(navigationView.getWidth()+navigationView.getX());//根據側邊欄控件寬度和其移動像素計算內容布局位移,使內容布局左邊緊貼側邊欄控件右邊contentView.setX(navigationView.getWidth()+navigationView.getX());}@Overridepublic void onDrawerOpened(View drawerView) {super.onDrawerOpened(drawerView);System.out.println("+++++++++++onDrawerOpened++++++++++++");}@Overridepublic void onDrawerClosed(View drawerView) {super.onDrawerClosed(drawerView);System.out.println("+++++++++onDrawerClosed++++++++++++++");}@Overridepublic void onDrawerStateChanged(int newState) {super.onDrawerStateChanged(newState);System.out.println("+++++++++onDrawerStateChanged++++++++++++++"+newState);}};drawerLayout.addDrawerListener(simpleDrawerListener);//.....省略部分代碼}代碼就不發了,本實例在AndroidStudio新建Navigation Drawer Activity自動生成Demo上修改,不太懂需要demo的可以留言。看,實際上Google工程師已經把路鋪好,剩下的就是廣大的程序員去發揮想象力了。
?
博主自己作品推薦:
西谷盒子:自帶公網IP、即插即用、全端口開放、花生殼替代品
https://cigobox.taobao.com
轉載于:https://my.oschina.net/SundyCigoOS/blog/775495
總結
以上是生活随笔為你收集整理的基于Goolgle最新NavigationDrawer实现全屏水平平移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bat 引号 嵌套_边缘检测 使用 Op
- 下一篇: lvgl chart