近日发现自定义的ListRowPresenter更改了标题颜色,但是颜色是更改了文字确变黑。
而且Head和下面的List之间的间距还特别大。。。
20220112155346.png查看了下源码发现是RowHeaderPresenter中的mAnimateSelect控制了Alpha.
image.png
解决办法是继承RowHeaderPresenter,重写onSelectLevelChanged方法,同时注掉super方法.
关于间距问题是因为description占位的问题导致的,同理给隐藏掉就可以了。
class CustomRowHeaderPresenter extends RowHeaderPresenter {
@Override
protected void onSelectLevelChanged(ViewHolder holder) {
}
@Override
public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item) {
HeaderItem headerItem = item == null ? null : ((Row) item).getHeaderItem();
RowHeaderPresenter.ViewHolder vh = (RowHeaderPresenter.ViewHolder) viewHolder;
vh.view.findViewById(R.id.row_header_description).setVisibility(View.GONE);
TextView title = vh.view.findViewById(R.id.row_header);
title.setText(headerItem.getName());
title.setTextSize(TypedValue.COMPLEX_UNIT_SP,16.6f);
title.setTypeface(XyApplication.getInstance().getCustomTypeface());
title.setTextColor(title.getContext().getResources().getColor(R.color.recommend_controller_tv));
}
}
更改后就和设计图的样子一样了
image.png
网友评论