Android Tv VerticalGridView更改Head颜色及间距

近日发现自定义的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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容