android 导航动画,安利一个Android导航库

SlidingRootNav

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

7bd5ec828192

使用

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);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值