Android Tv VerticalGridView更改Hea

2022-01-12  本文已影响0人  Dev_MrZhao

近日发现自定义的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
上一篇下一篇

猜你喜欢

热点阅读