-
Notifications
You must be signed in to change notification settings - Fork 521
Usage
Hu XiBing edited this page Jul 9, 2018
·
2 revisions
NewbieGuide.with()
为入口方法,返回Builder对象,用于构建引导层
引导层的建造者对象,一个引导层可以包含多个引导页。
方法 | 含义 |
---|---|
setLabel | 设置引导层标示区分不同引导层,必传!否则报错 |
setOnGuideChangedListener | 设置引导层的显示与消失监听 |
setOnPageChangedListener | 设置引导页切换监听 |
alwaysShow | 是否每次都显示引导层,默认false,只显示一次 |
addGuidePage | 添加一页引导页 |
build | 生成Controller对象,控制引导层的显示,隐藏等操作 |
show | 直接显示引导层,内部是调用Controller的show方法 |
anchor | 引导层显示的锚点,即根布局,不设置的话默认是decorView(v2.1.0版本添加) v2.3.0默认修改为android.R.id.content |
setShowCounts | 引导层的显示次数,默认是1次。(v2.1.0版本添加) |
引导页对象,包含一张引导页的信息,如高亮的view,布局,跳转控件id,背景色等。
方法 | 含义 |
---|---|
addHighLight | 添加引导页高亮的view |
setLayoutRes | 引导页布局,第二个可变参数为点击跳转下一页或者消失引导层的控件id |
setEverywhereCancelable | 是否点击任意地方跳转下一页或者消失引导层,默认true |
setBackgroundColor | 设置引导页背景色,建议使用有透明度的颜色,默认背景色为:0xb2000000 |
setOnLayoutInflatedListener | 设置自定义layout填充监听,用于自定义layout初始化 |
setEnterAnimation | 设置进入动画 |
setExitAnimation | 设置退出动画 |
通过Builder.build()方法返回,用于控制引导层的显示,隐藏等操作
方法 | 含义 |
---|---|
show | 显示引导层的第一页 |
resetLabel | 设置此引导层从没有显示过 |
remove | 移除引导层 |
showPreviewPage | 显示前一页page(v2.2.1新增) |
showPage(int position) | 显示position位置引导页 (v2.2.1新增) |
由于后续新增了很多高亮相关的api,沿用原有重载方法会导致参数过多。因此抽取Options类,用于处理额外的设置。
通过内部Builder对象构建,有如下set方法:
方法 | 含义 |
---|---|
setOnClickListener | 高亮区域点击事件 |
setRelativeGuide | 高亮相对位置引导布局 |
setOnHighlightDrewListener | 高亮绘制后回调该监听,用于绘制额外内容 |
相较与v1.x版本,改动看似很大,实际上只是把Page单独抽离出来,通过addGuidePage方法添加一页代替之前的asPage,使其符合面对对象。
NewbieGuide.with(this)
.setLabel("page")//设置引导层标示区分不同引导层,必传!否则报错
.setOnGuideChangedListener(new OnGuideChangedListener() {
@Override
public void onShowed(Controller controller) {
Log.e(TAG, "NewbieGuide onShowed: ");
//引导层显示
}
@Override
public void onRemoved(Controller controller) {
Log.e(TAG, "NewbieGuide onRemoved: ");
//引导层消失(多页切换不会触发)
}
})
.setOnPageChangedListener(new OnPageChangedListener() {
@Override
public void onPageChanged(int page) {
Log.e(TAG, "NewbieGuide onPageChanged: " + page);
//引导页切换,page为当前页位置,从0开始
}
})
.alwaysShow(true)//是否每次都显示引导层,默认false,只显示一次
.addGuidePage(//添加一页引导页
GuidePage.newInstance()//创建一个实例
.addHighLight(button)//添加高亮的view
.addHighLight(tvBottom, HighLight.Shape.RECTANGLE)
.setLayoutRes(R.layout.view_guide)//设置引导页布局
.setOnLayoutInflatedListener(new OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(View view, Controller controller) {
//引导页布局填充后回调,用于初始化
TextView tv = view.findViewById(R.id.textView2);
tv.setText("我是动态设置的文本");
}
})
.setEnterAnimation(enterAnimation)//进入动画
.setExitAnimation(exitAnimation)//退出动画
)
.addGuidePage(
GuidePage.newInstance()
.addHighLight(tvBottom, HighLight.Shape.RECTANGLE,20)
.setLayoutRes(R.layout.view_guide_custom, R.id.iv)//引导页布局,点击跳转下一页或者消失引导层的控件id
.setEverywhereCancelable(false)//是否点击任意地方跳转下一页或者消失引导层,默认true
.setBackgroundColor(getResources().getColor(R.color.testColor))//设置背景色,建议使用有透明度的颜色
.setEnterAnimation(enterAnimation)//进入动画
.setExitAnimation(exitAnimation)//退出动画
)
.show();//显示引导层(至少需要一页引导页才能显示)
NewbieGuide.with(this)//传入activity
.setLabel("guide1")//设置引导层标示,用于区分不同引导层,必传!否则报错
.addHighLight(textView, HighLight.Type.RECTANGLE)//添加需要高亮的view
.setLayoutRes(R.layout.view_guide)//自定义的提示layout,不要添加背景色,引导层背景色通过setBackgroundColor()设置
.show();//显示引导层
//新增多页模式,即一个引导层显示多页引导内容
NewbieGuide.with(this)
.setLabel("page")//设置引导层标示区分不同引导层,必传!否则报错
.setOnGuideChangedListener(new OnGuideChangedListener() {
@Override
public void onShowed(Controller controller) {
Log.e(TAG, "NewbieGuide onShowed: ");
//引导层显示
}
@Override
public void onRemoved(Controller controller) {
Log.e(TAG, "NewbieGuide onRemoved: ");
//引导层消失(多页切换不会触发)
}
})
.setOnPageChangedListener(new OnPageChangedListener() {
@Override
public void onPageChanged(int page) {
Log.e(TAG, "NewbieGuide onPageChanged: " + page);
//引导页切换,page为当前页位置,从0开始
}
})
.alwaysShow(true)//是否每次都显示引导层,默认false,只显示一次
/*-------------以上元素为引导层属性--------------*/
.addHighLight(textView)//设置高亮的view
.setLayoutRes(R.layout.view_guide)//设置引导页布局
.asPage()//保存参数为第一页
/*------------- 第一页引导页的属性 --------------*/
.addHighLight(button)//从新设置第二页的参数
.setLayoutRes(R.layout.view_guide)
.asPage()
/*------------- 第二页引导页的属性 --------------*/
.addHighLight(textView)
.setLayoutRes(R.layout.view_guide_custom, R.id.iv)//引导页布局,点击跳转下一页或者消失引导层的控件id
.setEveryWhereCancelable(false)//是否点击任意地方跳转下一页或者消失引导层,默认true
.fullScreen(true)//是否全屏,即是否包含状态栏,默认false,设置为true需要Activity设置为全屏或者沉浸式状态栏
.setBackgroundColor(getResources().getColor(R.color.testColor))//设置引导页背景色,建议使用有透明度的颜色,默认背景色为:0xb2000000
// .asPage()//只有一页或者最后一页可以省略
/*------------- 第三页引导页的属性 --------------*/
.show();//显示引导层