Skip to content
Hu XiBing edited this page Dec 11, 2018 · 10 revisions

Q&A

如何让引导层全屏显示(包括状态栏)?

默认的anchor是contentView,如果想让引导层全屏,可以设置anchor为decorView。

如何获取decorView?

View decorView = activity.getWindow().getDecorView();

部分手机出现引导层显示异常,如本应高亮部分变成黑色?

在Manifest中指定开启显示引导层activity的硬件加速

引导层显示,但是高亮的view并没有高亮

在显示引导层的时候确保高亮的view已显示在界面上,可以使用view.post或者addGlobal

从旧版本升级到v2.1.0时发生错误:java.lang.ClassCastExcetion:java.lang.Boolean cannot be cast to java.lang.Integer;

由于v2.1.0修改了Controller.java中label的SharedPreferences存储类型为int,之前版本为boolean。如果从之前版本升级到v2.1.0,会出现这个错误,修复方式是修改之前使用的label

升级到v2.2.1编译错误

2.2.1版本调整了OnLayoutInflatedListener接口的方法,新增了一个参数Controller方便page控制

public interface OnLayoutInflatedListener {

    /**
     * @param view       {@link com.app.hubert.guide.model.GuidePage#setLayoutRes(int, int...)}方法传入的layoutRes填充后的view
     * @param controller {@link Controller}
     */
    void onLayoutInflated(View view, Controller controller);
}

升级到2.2.0需要将该接口的所有实现(匿名类)添加controller入参。

引导层显示时机

有时需要高亮的view可能在Scrollview或者Recylerview中,并且初始并不可见,只有滑动后才可见。这种情况需要自己判断需要高亮的view是否在屏幕可见,可见的情况才调用NewbieGuide的api显示引导层。具体如何判断请自己搜索对应方法。