SlidingRootNav

这是一个像DrawerLayout一样的抽屉式的导航库,这个库实现的抽屉在content view的下层,滑动之后,才能看到相应的导航页

使用

Gradle

添加依赖

compile 'com.yarolegovich:sliding-root-nav:1.0.2'

使用说明

创建一个 content_view.xml或通过编程方式创建

在Activity中设置view(setContentView)

创建menu.xml或通过编程方式创建

在onCreate方法中注入菜单。

new SlidingRootNavBuilder(this)

.withMenuLayout(R.layout.menu_left_drawer)

.inject();

API

过场动画

创建时可以添加一些过场动画,库本身提供一些默认的过场。

new SlidingRootNavBuilder(this)

.withDragDistance(140) //水平动画. Default == 180dp

.withRootViewScale(0.7f) //设置主view的缩放比例0~0.7. 默认值 == 0.65f;

.withRootViewElevation(10) //主view垂直方向的值 0~10dp. 默认值 == 8.

.withRootViewYTranslation(4) //主view y轴方向的过场0~4. 默认值 == 0

.addRootTransformation(customTransformation) // 添加自定义过场

.inject();

customTransformation 是自定义的,需要实现 RootTransformation 接口

菜单的行为

new SlidingRootNavBuilder(this)

.withMenuOpened(true) //初始化菜单的状态(打开/关闭) 默认值 == false

.withMenuLocked(false) //锁定菜单,true时不能打开或关闭菜单 默认值 == false.

.withGravity(SlideGravity.LEFT) //设置菜单从哪个方向出来,

.withSavedState(savedInstanceState) //是否保存菜单的状态

.inject();

控制布局

public interface SlidingRootNav {

boolean isMenuHidden();

boolean isMenuLocked();

void closeMenu();

void closeMenu(boolean animated);

void openMenu();

void openMenu(boolean animated);

void setMenuLocked(boolean locked);

SlidingRootNavLayout getLayout(); //If for some reason you need to work directly with layout - you can

}

在调用inject()后返回的实例,可以控制布局

回调

滑动过程的回调

builder.addDragListener(listener);

public interface DragListener {

void onDrag(float progress); //Float between 0 and 1, where 1 is a fully visible menu

}

滑动状态的回调

builder.addDragStateListener(listener);

public interface DragStateListener {

void onDragStart();

void onDragEnd(boolean isMenuOpened);

}

兼容 DrawerLayout.DrawerListener 回调

DrawerListenerAdapter adapter = new DrawerListenerAdapter(yourDrawerListener, viewToPassAsDrawer);

builder.addDragListener(listenerAdapter).addDragStateListener(listenerAdapter);

android 导航动画,安利一个Android导航库相关推荐

  1. java工程引用其他工程,Android工程:引用另一个Android工程的方法详解

    现在已经有了一个Android工程A.我们想扩展A的功能,但是不想在A的基础上做开发,于是新建了另外一个Android工程B,想在B中引用A. 一个思路是把工程A做成纯Jar包,这样其他的工程就可以直 ...

  2. android 帧动画监听,Android 动画(View动画,帧动画,属性动画)详细介绍

    0. 前言 Android动画是面试的时候经常被问到的话题.我们都知道Android动画分为三类:View动画.帧动画和属性动画. 先对这三种动画做一个概述: View动画是一种渐进式动画,通过图像的 ...

  3. android+下落+动画,完美起航-Android面试题之动画+事件处理篇

    前言 提示:秋招在即,计蒙准备在国庆假期结束前整理一套Android初级面试题籍,希望对大家有所帮助 提示:以下是本篇文章正文内容 动画 1.Android 中的动画有哪几类 帧动画.补间动画.属性动 ...

  4. android开机动画不播放,android 设置activity启动退出动画 | 解决设置activity 动画不生效问题...

    前提: 如果有动画,最好把activity 设置成透明,不然会有黑屏! true 方法一:代码里面设置 getActivity().startActivity(intent,bundle); getA ...

  5. android 帧动画不播放,Android Frame Animation 帧动画不播放问题。

    今天在我的第一个应用<那些花儿>(养花助手),主页上加了两只翩翩起舞的蝴蝶. 效果图如下: 步骤也是很简单. 1.在anim文件夹内定义动画XML文件 android:oneshot=&q ...

  6. android使用动画画心形,Android中利用画图类和线程画出闪烁的心形,送给亲爱的他(她)...

    本文讲解主要涉及的知识点: 1.线程控制 2.画图类 3.心形函数 大家先看图片: 因为前一段时间在写画图类,刚好有一个线程控制画图闪烁的,我就想说我能不能做一个心形闪烁的,出来的效果就如图,先贴再讲 ...

  7. android 机器人动画,画一个可以动的Android 小机器人

    上次我们画了一个哆啦A梦,可惜这个哆啦A梦并不会动,今天我们就来画一个可以动的Android小人.这次,我们全程使用C3高级. image.png 好,废话不多说,我们直接上代码. Android 初 ...

  8. android 高光动画,记一个头像高光动画的CSS实现

    前言 久违的,又抽时间写个博客(づ ̄3 ̄)づ╭❤-~ 今天想分享一个小动画的实现头像跳动并高光划过效果展示 大家可以先点进去看看效果~点击头像触发动画效果~ 或者直接看两张图片示意~全部代码贴在文字底 ...

  9. android开机默认动画,求一个 android 开机动画的代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 @_噢噢 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn ...

最新文章

  1. mysql分页案例_php+mysql 进行分页案例
  2. (0001) iOS 开发之收集第三方资源篇
  3. OPA 5 - CreateButtonTest creates CreateButtonSteps
  4. 获取字段 命名空间和类_系统架构之命名规范
  5. 证明的思路 —— 数形结合
  6. 科大讯飞 开放平台 开发者 语音识别
  7. jni数组使用(二)
  8. 元气骑士机器人的成就皮肤_元气骑士:5把特殊“红武”,想要机器人的皮肤,用它就对了!...
  9. 使用Windows批处理压缩文件
  10. 销售竞争情报实战--徐凌云老师
  11. java soapui 发送xml_javawebservice 中用soapui发送请求由于出现异常错误, 无法创建 SOAP 消息: XML 读进程错误...
  12. selenum登录163邮箱
  13. java编程:对两个分数进行简单的算术运算
  14. 【企业编程题JAVA】烽火通信2018校招软件工程师
  15. labspec6教程_LabSpec6软件功能–光谱扫描方式-Horiba.PDF
  16. eNSP配置静态路由实例
  17. 期货的价格与执行价格(期货执行价格是什么意思)
  18. oracle转借权限,Oracle Universal Connection Pool(UCP) for JDBC 详解
  19. 裁员纪实:联想不是我的家(转)
  20. 揭开前端绘制地图的神秘面纱

热门文章

  1. Android8内测申请,小米 6 安卓 8.0 来了 内测开始招募
  2. html input不能输入小数_【Python基础(八)】输入和输出
  3. php常见漏洞修复,phpstudy漏洞修复方法
  4. php框架laravel_Laravel简介(PHP框架)
  5. Java 中 10 大坑爹功能!
  6. Golang类型转换
  7. Centos7.x Hadoop 3.x HDFS 写入文件
  8. js处理16进制hex转str出现的中文乱码问题
  9. 简单的ajax上传商品功能使用SevletFileUpload和FormData
  10. openssl 1.1.1编译语句