butterknife总结(一)
来源:互联网 发布:小学考试软件下载 编辑:程序博客网 时间:2024/06/16 18:07
还是很喜欢butterknife的。
它使用简单的绑定方式,帮助coder减少代码开发量,格式简洁易懂,使用极~其~方~便~。
本文将简单介绍如何使用bufferknife。
那么,如何使用butterknife呢?以android studio为例。
首先,需要在项目中添加Library Dependency:
(1)’com.jakewharton:butterknife:8.8.1’
(2)’com.jakewharton:butterknife-compiler:8.8.1’
*注:最新版本为8.8.1。若不添加’com.jakewharton:butterknife-compiler:8.8.1’,编译不会出错,但绑定不成功。
原因在于该包会对工程进行二次编译,将butterknife的语法,再次转换为findViewbyID等android SDK原有接口。*
其次,在需要使用butterknife的对象中调用ButterKnife.bind()方法(该步骤很重要,若缺少该步骤,编译可以通过,但绑定失败,无任何关联相应。),进行“初始化”。分两种情况。
(1)若为activity,则需要在onCreate()方法中进行初始化
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_activity); ButterKnife.bind(this); // TODO Use fields...}
(2)若为其他View,则需要在onCreateView()方法中进行初始化
@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fancy_fragment, container, false); ButterKnife.bind(this, view); // TODO Use fields... return view;}
“初始化”必须在setContentView();之后,且父类bind绑定后,子类不需要再bind。
需要特殊注意继承于Fragment的View。butterknife文档中强调,要求在View的onDestroy()方法中,进行解绑操作。
public class FancyFragment extends Fragment { @BindView(R.id.button1) Button button1; @BindView(R.id.button2) Button button2; private Unbinder unbinder; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fancy_fragment, container, false); unbinder = ButterKnife.bind(this, view); // TODO Use fields... return view; } @Override public void onDestroyView() { super.onDestroyView(); unbinder.unbind(); }}
依照以上步骤,bufferknife已可以正常使用。
此后,将继续总结bufferknife的功能。
- butterknife总结(一)
- butterknife总结(三)
- butterknife总结(四)
- 笔记:ButterKnife使用(一)
- ButterKnife源码分析(一)
- ButterKnife 框架的使用(一)
- Android Butterknife(黄油刀) 使用方法总结
- Butterknife使用(学习总结)
- Android ButterKnife使用总结
- Butterknife使用总结
- ButterKnife基础使用总结
- Android Butterknife使用方法总结
- Android ButterKnife学习总结
- ButterKnife:一键生成代码(解决不能生成)
- Butterknife(黄油刀使用)一分钟集成
- ButterKnife源码研究一宏观
- ButterKnife学习笔记【一】--- 简介
- Butterknife 8.4.0 使用方法总结
- Python的matplotlib(2)
- [LeetCode P32] Longest Valid Parentheses 四种解法
- 欢迎使用CSDN-markdown编辑器
- HBase 数据及物理模型 架构及工作原理
- python3常见编码转换
- butterknife总结(一)
- 简单介绍当前Windows支持的各种Socket I/O模型
- tensorflow学习笔记(2):常量(tf.constant)与变量(tf.Varialbe)
- springboot从零开始[2] gradle+mybatis xml
- 【剑指offer】面试题66:构建乘积数组
- mysql如何解决中文编码问题
- Java设计模式之创建型模式-建造者模式(Builder)
- Django笔记1——安装配置(Linux环境)
- 判断两条线段是否相交