如题,自定义了一个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 的。百分比布局先需要通过父布局得到自己的高度再去计算百分比的,所以逻辑上就过不去。