-
Notifications
You must be signed in to change notification settings - Fork 468
9、使用注意
1、selector的相关属性,如果传入的drawable不是颜色的资源,会覆盖掉shape设置的属性
2、在根布局添加
tools:ignore="MissingPrefix"
可以防止报红
3、因为layoutInflater限制了只能有一个factory,如果有其他库已经使用了setFactory方法,比如换肤的库:
在application中加入:
{
BLAutoInjectController.setEnableAutoInject(false);
}
在activity的super.onCreate和setContentView之间加入:
BackgroundLibrary.inject(context);
这样其他的库与本库同样可以生效。
4、fragment使用无需任何处理,其Activity调用inject即可
5、listView,recyclerView使用也无需任何处理。
如果不生效,只需要
//在调用inflate只需调用一次context,保证adapter创建View时传入的是同一个context即可
BackgroundLibrary.inject(context);
View item = LayoutInflater.from(context).inflate(xxx)
6、自定义View中调用了inflate,同listView一样处理即可
7、关于水波纹,如果光设置下面两个属性是无效的,必须还要有个填充颜色的属性,原因如下:
app:ripple_color="#71C671"
app:ripple_enable="true"
水波纹需要设置一个默认背景颜色,也就是填充颜色。比如app:solid_color 或者app:unPressed_drawable 或者app:unFocussed_drawable等都行,这些都是默认等背景颜色。而app:ripple_color是波纹的颜色。如果没有一个背景色,这个波纹颜色是无法显示的
9、由于Android源码的原因,如果是通过代码生成有点击状态drawable,需要先调用一下
view.setClickable(true);
否则点击状态可能不生效
10、bl_position 不能与bl_ripple_enable同时使用
11、tinker热修复框架导致不生效的问题,在Application或者AppLike里面手动registerActivityLifecycleCallbacks:
public class BLActivityLifecycleRegister implements Application.ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
BackgroundLibrary.inject(activity);
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}
12、java.lang.NoClassDefFoundError: Failed resolution of: Lcom/noober/background/R$styleable错误,是因为主dex没有BackgroundLibrary的原因,解决方法如下,创建multidex.pro,设置BL在主dex中:
multidex.pro的内容为
-keep class com.noober.background.**{*;}
13、在ViewStab标签中无法使用,需要使用BLView.
14、1.7.4之后,部分有点击效果的属性,需要在代码中设置clickable为true才能生效,例如bl_pressed_color、bl_checked_stroke_color、bl_selected_stroke_color等等