Giter Club home page Giter Club logo

toolbarhelper's Introduction

ToolBarHelper README

概述

ToolBarHelper 是一个用于动态设置 Android ToolBar 的第三方库,使用了 ToolBarHelper 可以让你不需要在 xml 中声明,但运行后页面上有一个 ToolBar。实现原理是通过 Java 代码创建出一个 ToolBar 之后利用 ConstraintLayout 的特性,分别为其设置左、上、右的目标约束均为父容器的约束关系。所以这个库对使用项目有一个隐形要求:页面根节点必须是 ConstraintLayout。当前项目不支持非 AndroidX 使用。

本项目处于刚起步阶段,难免存在一些问题,还请在 issues 页面阐述。

当前版本

演示

更多演示请看:GIF

如何使用

Step 1. 在你的项目的根基目录的 build.gradle 中 repositories 的末尾配置:

allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}

Step 2. 添加依赖

dependencies {
  implementation 'com.github.CherryLover:ToolBarHelper:lastVersion'
}

使用

Java

ToolBarHelper toolBarHelper;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_list, container, false);
    ListView closeToolView = rootView.findViewById(R.id.lv_list_menu);
    toolBarHelper = new ToolBarHelper(rootView, closeToolView, "你的标题");

    return rootView;
}

以上是 ToolBarHelper 在 Fragment 中的使用,在 Activity 中使用,在 onCreate 中进行初始化即可。其中 closeToolView 为垂直方向上最接近 ToolBar 的 View。

API

ToolBarHelper

这个类是作为操作或响应 ToolView 事件的代理,也是整个框架的管理核心。

方法名 参数类型 返回值类型 作用 备注
setPopProiver PopProvider void 设置返回键点击托管控制器
setListener() ToolClickListener void ToolView 上除 PlaceHolder 内元素外的所有 View 的点击回调
setMenu String void 设置右侧菜单文字
setMenuImg Int Res id void 设置右侧菜单图标
setTitle String void 设置中间标题文字
setBgColor Int ColorRes void 设置 ToolView 背景色
setBackgroundColor Int ColorInt void 设置 ToolView 背景色
setBackgroundRes Int DrawableRes void 设置 ToolView 背景 Drawable 资源
setBackground Drawable void 设置 ToolView 背景 Drawable 对象
getHolderProviderRequires 无参 Array<View> 获取创建 HolderProvider 实现类的必要参数 尚未完善
getDefaultHolderProvider 无参 DefaultHolder 获取默认的 HolderProvider 实例 DefaultHolder 尚未完善
ToolView

实际完成 View 绘制及事件产生的来源类。

PopProvider

返回按钮的点击事件消费类,但此类为抽象类,默认实现类有 NavPop,RiggerPop。

NavPop

当项目内使用的 Fragment 导航框架为 Google Jetpack 中的 Navigation 时使用。

RiggerPop「尚未完善」

当项目内使用的 Fragment 导航框架为 FragmentRigger 时使用。

HolderProvider「尚未完善」

该类为 ToolView 中的特殊 View 提供管理,可设置 CheckBox 等特殊场景下放置在 ToolView 上的元素。默认实现为 DefaultHolder。

建议

推荐将 ToolBarHelper 的初始化放在 BaseFragment 中。可参考 BaseFragment.kt

开源协议

toolbarhelper's People

Contributors

cherrylover avatar

Stargazers

GoFlying avatar  avatar  avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.