listview的每个item显示不完全,只显示一个控件。

如题,自定义了一个listview的item的布局,布局是这样的:图片说明,上面一个textview,然后下面是3个按钮,按钮下面是2个RadioButton。然后listview所在的布局是这样的:图片说明,listview上面是一个textview。但是在实际填充数据的过程中listview的每一个item却只显示了图一中的第一个控件,下面的按钮和复选按钮都没有显示,请问下这是什么原因啊?图片说明

应该是你的item 下面的控件没有指定高度吧!或者是你默认的都是隐藏的 如果是没有指定高度 就指定高度,如果时默认隐藏 不要在xml 文件中配置隐藏,在adapter 中调用setVisibility(View.GONE)隐藏

item 是自定义的,那你应该需要自定义Listview测量来展示每个item

 <?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentRelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#fceffc"
    android:orientation="vertical">

    <TextView
        android:id="@+id/answer_page_item_tv_ques"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:text="aaaaaaaaaaaaaaa"
        android:textColor="@color/black"
        android:textSize="15sp"/>

    <LinearLayout
        android:id="@+id/answer_page_item_ll"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@id/answer_page_item_tv_ques"
        android:layout_marginTop="5dp"
        android:background="#f5f5f5"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        app:layout_heightPercent="8%">

        <Button
            android:id="@+id/answer_page_item_btn1"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:background="@drawable/btn_style"
            android:text="@string/photo"
            />

        <Button
            android:id="@+id/answer_page_item_btn2"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:background="@drawable/btn_style"
            android:text="@string/camera"
            />

        <Button
            android:id="@+id/answer_page_item_btn3"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:background="@drawable/btn_style"
            android:text="@string/record"
            android:visibility="gone"
            />

        <Button
            android:id="@+id/answer_page_item_btn4"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:background="@drawable/btn_style"
            android:text="@string/edit"
            />
    </LinearLayout>

    <RadioGroup
        android:id="@+id/answer_page_item_rg"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@id/answer_page_item_ll"
        android:layout_marginTop="5dp"
        android:background="#f3f3f3"
        android:gravity="center"
        android:orientation="horizontal"
        app:layout_heightPercent="8%"
        >

        <RadioButton
            android:id="@+id/answer_page_item_rbpass"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="30dp"
            android:layout_weight="1"
            android:gravity="center"
            android:text="达标">
        </RadioButton>

        <RadioButton
            android:id="@+id/answer_page_item_rbnopass"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
            android:layout_weight="1"
            android:gravity="center"
            android:text="不达标">
        </RadioButton>
    </RadioGroup>


</android.support.percent.PercentRelativeLayout>

,这个是item的布局,我在这里为什么通过设置百分比的方式不可以啊,在其他布局都可以,都能正常显示。为什么在listview里面就不显示了。图片说明

别用百分百布局,因为 ListView 是先测量 Item 布局的高度再决定屏幕显示多少 item 的。百分比布局先需要通过父布局得到自己的高度再去计算百分比的,所以逻辑上就过不去。