概述
最近使用mvvm的开发模式,但是又蛋疼于dataBinding的编译问题,终于决定着手使用ButterKnife,小白总免不了遇到坑,小坑怡情,大坑伤神。今天开始持续更新填坑记录。
坑1.ButterKnife.bind(this, view)更新不了控件
具体现象描述:由于fragment中不能使用ButterKnife.bind(this)方法,所以只能改用ButterKnife.bind(this, view)如下:
View view = inflater.inflate(R.layout.fragment_single_ad, container, false);
unbinder = ButterKnife.bind(this, view);
后来在ativity中我也使用了此方法:
View view = ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.activity_device, null);
setContentView(R.layout.activity_device);
unbinder = ButterKnife.bind(this, view);
在后面更新控件内容:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.activity_device, null);
setContentView(R.layout.activity_device);
unbinder = ButterKnife.bind(this, view);
setResultState(false);
}
@Override
protected void onStart() {
super.onStart();
setResultState(false);
}
private void setResultState(boolean isSuccess) {
if (isSuccess) {
resultTv.setText("已成功绑定...");
resultTv.setTextColor(Color.parseColor("#67C03C"));
resultIv.setImageResource(R.mipmap.right_line);
}else {
resultTv.setText("错误");
resultTv.setTextColor(Color.parseColor("#CF1322"));
resultIv.setImageResource(R.mipmap.warning_line);
}
resultLl.setVisibility(View.VISIBLE);
}
然而怎么也更新不了,刚开始以为是约束布局造成的布局之间的相互依赖问题导致的位置被挤压了,朝这个方向努力了很久,依旧无果,这不一大早来公司,想了想,对butterKnife产生了怀疑,毕竟对她也比较陌生(最初没怀疑她的原因是控件使用时并没有报找不到控件对象的错误,也就是她的实例化对象的任务是完成了的),试着按如下方式改了一下:
unbinder = ButterKnife.bind(this, view);
改为
unbinder = ButterKnife.bind(this);
运行一次,amazing!
最后
以上就是柔弱胡萝卜为你收集整理的ButterKnife的采坑记录的全部内容,希望文章能够帮你解决ButterKnife的采坑记录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复