qq_20523943
毛豆啊
采纳率66.7%
2017-07-14 08:00 阅读 1.8k

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

1

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    chenli910226 BA陈 2017-07-14 08:28

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

    点赞 评论 复制链接分享
  • wufeng55 code小生 2017-07-14 08:32

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

    点赞 评论 复制链接分享
  • qq_20523943 毛豆啊 2017-07-14 08:45
     <?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里面就不显示了。图片说明

    点赞 评论 复制链接分享
  • ganyao939543405 OSTCB 2017-07-21 05:40

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

    点赞 评论 复制链接分享

相关推荐