安利一个Android导航库

作者: CoderMiner | 来源:发表于2017-04-17 11:07 被阅读274次

SlidingRootNav

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

使用

Gradle

添加依赖

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

使用说明

  1. 创建一个 content_view.xml或通过编程方式创建
  2. 在Activity中设置view(setContentView)
  3. 创建menu.xml或通过编程方式创建
  4. 在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);

库-github
实例源码

相关文章

  • 安利一个Android导航库

    SlidingRootNav 这是一个像DrawerLayout一样的抽屉式的导航库,这个库实现的抽屉在conte...

  • Jetpack Navigation的使用

    背景 Navigation组件是Android X 依赖库中的一个导航组件,它能接替管理多Fragment之间的关...

  • Navigation

    Navigation:可简化Android导航的库和插件,用来管理Fragment的切换,通过可视花的方式,看到A...

  • Android 导航

    一.导航抽屉Navigation Drawer 想必用过Android的人都熟悉导航抽屉,这算是一个比较经典的导航...

  • Android隐藏状态栏、导航栏

    Android隐藏状态栏、导航栏 Android 动态隐藏显示导航栏,状态栏 一、导航栏: 相关: 二、状态栏: ...

  • 状态栏透明

    android 虚拟导航

  • React Navigation Android端 按下返回键

    最近的RN项目中页面导航使用的是官方推荐的React Navigation,但是这个库在Android设备上有个b...

  • 有用的框架级的东西

    Android 开源图表库 - SmallChart SmallChart 是一个开源的 Android 图表库,...

  • Android使用底部导航2018-08-16

    Android使用底部导航 Android底部导航停留在屏幕底部,提供应用中顶级视图之间的导航。这是在具有向后兼容...

  • 安利一个创业导航站

    创业007-创业服务网址导航 www.chuang007.com 这家网站是我在上一家公司的时候发现的,当时工作不...

网友评论

    本文标题:安利一个Android导航库

    本文链接:https://www.haomeiwen.com/subject/gvqtzttx.html