KVI*_*ISH 28 data-binding android android-layout android-adapter butterknife
我正在用ButterKnife我的观点来约束我的观点ViewHolder.我的代码如下:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<DataObject> data;
public MyAdapter(List<DataObject> data) {
this.data = data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_layout, parent, false);
return new ViewHolder(view);
}
public static class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.row_header_view) View rowHeaderView;
@BindView(R.id.row_header_view_text) TextView headerTextView;
@BindView(R.id.row_data_view) View rowDataView;
@BindView(R.id.row_data_view_text) TextView rowDataTextView;
@BindView(R.id.row_data_view_detail_text) TextView rowDataDetailTextView;
public ViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我的ViewHolder所有人BindView都无所作为.它们都是空的.我可以肯定地证实他们在我的布局中.我的上述代码有什么问题?我已根据此处列出的文档使用它:
http://jakewharton.github.io/butterknife/#reset
还有什么需要吗?我正在使用ButterKnife版本:
compile 'com.jakewharton:butterknife:8.2.1'
Run Code Online (Sandbox Code Playgroud)
如果我添加以下行:
rowHeaderView = view.findViewById(R.id.row_header_view);
Run Code Online (Sandbox Code Playgroud)
它能够正确地获得视图.但这有什么意义呢?不可ButterKnife用在哪里findViewById可用?
bas*_*i82 21
2016年10月更新:您可能不再需要apt和android-apt插件了.Android Gradle插件的2.2版本有一个您应该使用的annotationProcessor配置.
在Android studio 2.2之后,只需在build.gradle模块中添加以下内容:
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
Run Code Online (Sandbox Code Playgroud)
Har*_*iya 10
如果您ButterKnife使用这种方式使用库,请确保
Project的build.gradle文件
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
Run Code Online (Sandbox Code Playgroud)
然后,'android-apt'在您的插件中应用插件module-level build.gradle并添加Butter Knife依赖项:
apply plugin: 'android-apt'
android {
...
}
dependencies {
compile 'com.jakewharton:butterknife:8.2.1'
apt 'com.jakewharton:butterknife-compiler:8.2.1'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15784 次 |
| 最近记录: |