Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
if (view == null) {
view = layoutInflater.inflate(R.layout.main_adapter_griditem, null);
}
final Site site = data.get(position);
final AQuery aq = listAq.recycle(view);
if (site.getThumbUrl().equals("")) {
aq.id(R.id.siteurl).visibility(View.VISIBLE);
aq.id(R.id.siteurl).text(getHostName.getHost(site.getUrl()));
}
else{
aq.id(R.id.siteurl).visibility(View.GONE);
}
if (!TextUtils.equals(site.getShortUser().getAvatar(),"")) {
aq.id(R.id.userAva).image(site.getShortUser().getAvatar());
}
aq.id(R.id.userFullname).text(site.getShortUser().getFullname());
if (site.getTitle().equals("")) {
aq.id(R.id.articleTitle).gone();
}
else {
aq.id(R.id.articleTitle).visible().text(site.getTitle());
}
int columnHeight = (int) (site.getThumbUrlBigHeight()* (columnWidth/(float)site.getThumbUrlBigWidth()));
if (columnHeight<=0) {
columnHeight = columnWidth;
}
if (columnHeight>maxHeigth) {
columnHeight = maxHeigth;
}
aq.id(R.id.stgvImageView).height(columnHeight,false);
aq.id(R.id.stgvImageView).width(columnWidth,false);
aq.id(R.id.stgvImageView).getImageView().setBackgroundColor(Utils.getStubColor(site.getShortUrl()));
if (!TextUtils.equals(site.getThumbUrlBig(true),"")) {
if (aq.shouldDelay(position,view,parent,site.getThumbUrlBig(true))) {
final Bitmap bitmap = null;
aq.id(R.id.stgvImageView).image(bitmap);
}
else {
aq.id(R.id.stgvImageView).image(site.getThumbUrlBig(true), true, false, site.getThumbUrlBigWidth(), 0, null, 0,
columnHeight / (float)columnWidth);
}
}
aq.id(R.id.articleShare).clickable(true).clicked(new View.OnClickListener() {
@Override
public void onClick(View v) {
UtilsScreen.onShareClick(activity, site, AdapterMain.this);
}
});
aq.id(R.id.button).text("Click Me").clicked(this, "buttonClicked"). Бегло глянув в исходники видно, что здесь чистой воды рефлексия в рантайме (класс Common), так что скорость тут будет не выше чем у Knork, поскольку оба подхода по сути упираются в Method.invoke().class Fragment implements OnClickListener {
@InjectView(id = R.id.btn, click = true)
private Button btn;
@Override
public void onClick(View v) {
if (v == btn) {
// TODO
}
}
}
I think this is just a fundamental flaw in annotation processing-based code generation. Changing a class should cause the processor to run again for it but changing the hierarchy is too-complex a task for an incremental generation. Hopefully this doesn't happen too much. It's just something we are going to have to deal with.
Knork: простейшая альтернатива ButterKnife в 160 строк кода