基于Goolgle最新NavigationDrawer实现全屏水平平移
来源:互联网 发布:php json 储存数据 编辑:程序博客网 时间:2024/06/06 23:18
常见实现App 上面侧边栏菜单之前使用SlidingDrawer,现在发现Goolgle原生NavigationDrawer也挺好用。但是细心的开发者们发现NavigationDrawer没有类似SlidingDrawer全屏平移的效果,其实不用着急,简单修改即可实现此效果。
话不多说上代码:
//.....省略部分代码 private DrawerLayout.SimpleDrawerListener simpleDrawerListener;//侧边栏基础布局DrawerLayout private NavigationView navigationView;//侧边栏控件 private View contentView;//主体内容布局 //.....省略部分代码 @Override protected 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() { @Override public void onDrawerSlide(View drawerView, float slideOffset) { super.onDrawerSlide(drawerView, slideOffset); System.out.println(navigationView.getWidth()+navigationView.getX()); //根据侧边栏控件宽度和其移动像素计算内容布局位移,使内容布局左边紧贴侧边栏控件右边 contentView.setX(navigationView.getWidth()+navigationView.getX()); } @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); System.out.println("+++++++++++onDrawerOpened++++++++++++"); } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); System.out.println("+++++++++onDrawerClosed++++++++++++++"); } @Override public void onDrawerStateChanged(int newState) { super.onDrawerStateChanged(newState); System.out.println("+++++++++onDrawerStateChanged++++++++++++++"+newState); } }; drawerLayout.addDrawerListener(simpleDrawerListener); //.....省略部分代码 }
代码就不发了,本实例在AndroidStudio新建Navigation Drawer Activity自动生成Demo上修改,不太懂需要demo的可以留言。看,实际上Google工程师已经把路铺好,剩下的就是广大的程序员去发挥想象力了。
1 0
- 基于Goolgle最新NavigationDrawer实现全屏水平平移
- 基于OpenCV实现图像平移
- Android NavigationDrawer实现
- Python实现图像平移、旋转、水平镜像等
- NavigationDrawer+Fragment实现侧滑菜单效果
- 【Android开发日记】使用 NavigationDrawer + fragment 实现sherlockActionBar+slidingmenu 功能
- Android:Navigationdrawer导航抽屉功能的实现(源代码分享)
- Android NavigationDrawer 开发详解-实现侧滑效果
- opencv实现图像平移
- 用C#实现基于winCE平台的应用程序全屏
- 安卓全屏设置实现(基于Activity与AppCompatActivity)
- NavigationDrawer详解
- android之Goolgle Map
- 用几何定位实现平移
- 属性动画实现平移效果
- 平移加旋转实现效果
- 图片平移实现水波动画
- 基于平移算法的一个小演示
- Android开发之ListView 优化之缓存优化
- 页面间传值的方式
- sql添加主键外键
- 在文件中加入数据的简单案例
- Technocup 2017 - Elimination Round 1 C 交互
- 基于Goolgle最新NavigationDrawer实现全屏水平平移
- 二叉树的操作3非递归算法求二叉树的高度
- mysql主从复制
- STL相关算法部分源代码学习
- 云帮社区版迎来10.25更新档
- 1020. 月饼 (25)
- 【XJOI】NOIP2016提高组冲剌题1 T1 挖金矿
- USB-to-serial 设备无法启动 代码(10)
- The list of sources could not be read.