RecyclerView Item 中宽度 match_parent 失败问题

item 布局文件:

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/tv_center_choice_item"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:gravity="center"
    android:paddingBottom="8dp"
    android:paddingTop="8dp"
    android:textColor="#222222"
    tools:text="temp"
    android:textSize="16sp"/>

解决方法: 在 onBind 方法中重新设置 TextView 的宽度。

    @Override
    public void onBind(RecyclerView.ViewHolder viewHolder, int position, List<CenterModel> mDatas) {
        ChoiceVH holder = (ChoiceVH) viewHolder;
        holder.mTv.setText(" ");

        ViewGroup.LayoutParams layoutParams = holder.mTv.getLayoutParams();
        layoutParams.width = mContext.getResources().getDisplayMetrics().widthPixels;
        Log.d(TAG, "onCreateVH: onBind.width" + layoutParams.width);
        holder.mTv.setLayoutParams(layoutParams);

        if (position > 1 && position < mDatas.size() + 2) {
            CenterModel data = mDatas.get(position - 2);
            holder.mTv.setText(data.name);
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,551评论 0 17
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,814评论 1 92
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,532评论 25 708
  • 翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视...
    lakerszhy阅读 3,926评论 1 22
  • 从成都回来的时候,我就彻底放弃了加盟饭团连锁店的想法。我想,在没有资本资金的情况下,我能够做什么?那就免费去学喽。...
    对酒几何阅读 230评论 1 2