RecyclerView的item显示出现控件显示不全

item中是一个复杂布局,其中的TextView的显示高度不对。
android:id="@+id/body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@+id/title"
android:weightSum="11">

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="7"
        android:paddingBottom="10dp">

        <TextView
            android:id="@+id/tvQuestion"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="10dp"
            android:text="aslkjdkjhdaksjdhk立刻决定是否莱克斯顿螺丝钉看法上的浪费苏打绿分里是空的将速度;是副食店了解分i未记录河流啊哈我阿拉维uifhlieawh分i芦苇 哇额uifha"
            android:textColor="@color/color_text_very_hard"
            android:textSize="20sp"
            />

        <TextView
            android:id="@+id/tv_question"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="10dp"
            android:text="显示问题的检查项两节课第三方乐山大佛蓝色的开始的;史蒂文哦i额;哦恶化;偶发;W 3哦()*&amp;()*&amp;哦额我饿r9p8w4r  "
            android:textColor="@color/color_text_very_light"
            android:textSize="18sp"
            android:layout_below="@+id/tvQuestion"
            />

    </RelativeLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="3"
        android:orientation="horizontal">

        <info.hoang8f.android.segmented.SegmentedGroup
            android:id="@+id/ans_group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center_vertical|center_horizontal"
            android:orientation="horizontal"
            android:paddingBottom="10dp"
            android:paddingTop="10dp"
            segmentedgroup:sc_border_color="@color/color_answer_border"
            segmentedgroup:sc_border_width="1dp"
            segmentedgroup:sc_corner_radius="5dp"
            segmentedgroup:sc_no_comment_color="@color/color_answer_ignore"
            segmentedgroup:sc_text_color="@color/color_answer_text"
            segmentedgroup:sc_tint_color="@color/color_answer_pass"
            segmentedgroup:sc_unqualified_color="@color/color_answer_fail">

            <RadioButton
                android:id="@+id/ans_yes"
                style="@style/RadioButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="1"
                android:textSize="20sp"/>

            <RadioButton
                android:id="@+id/ans_no"
                style="@style/RadioButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="2"
                android:textSize="20sp"/>

            <RadioButton
                android:id="@+id/ans_never"
                style="@style/RadioButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="3"
                android:textSize="20sp"/>

        </info.hoang8f.android.segmented.SegmentedGroup>
    </LinearLayout>

</LinearLayout>

出现显示不全的view就是id为tvQuestion和tv_question

4个回答

在adapter中的onCreateViewHolder()中
View inflate = layoutInflater.inflate(R.layout.xxx, parent, false); 注意要依附于parent

u010771318
张天宏 太牛逼了,,不过我想知道为什么
大约 4 年之前 回复

注意下:使用23.1.1以上的引用库,你会发现。View inflate = layoutInflater.inflate(R.layout.xxx, parent, false);这个3个参数的方法。会造成只显示一条,你不要以为只是一条数据,其实一条数据占满了整个屏幕,你可以滑动它,会发现都在,但是使用23.1.1就正常,解决方法如下:
引用自:http://blog.csdn.net/lamp_zy/article/details/51648336
2.对每个item的inflate,传入两个参数,第二个参数设置为null,而不是使用3个参数(第二个parent,第三个false)

3.item的根部局高度不要设置为相对的(match_parent或wrap_content),要设置为具体的高度就ok了

4.23+可能不是不加载,只是每个item都占满了一屏,往后拉可以看到下一个item

lingjingy
lingjingy 回复lingjingy: 我怀疑可能是版本不一致造成的.这也是给大家一个参考意见
3 年多之前 回复
lingjingy
lingjingy 我发现这个问题回答的有点片面,当时我用的23.0.1去编译的程序,内部有需求引用到23.1.1的recycleview就会出现上面我回复的问题.
3 年多之前 回复
vae260772
我是辉仔 你设置layoutInflater.inflate(R.layout.xxx, null,); 会出现一个问题,就是item不会占满布局。
3 年多之前 回复

回复vae260772: 我设置item.xml :<?xml version="1.0" encoding="utf-8"?> 发现背景颜色只显示一小块,没有占满整个item。 修改成 layoutInflater.inflate(R.layout.xxx, parent, false); 正常

回复vae260772: 我设置item.xml :<?xml version="1.0" encoding="utf-8"?> 发现背景颜色只显示一小块,没有占满整个item。 修改成 layoutInflater.inflate(R.layout.xxx, parent, false); 正常

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问