android – 从ListView中隐藏行而不占用空间

前端之家收集整理的这篇文章主要介绍了android – 从ListView中隐藏行而不占用空间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个ListView与一个关联的ArrayAdapter在几个活动中显示内容.不幸的是,现在有必要,我在其中一个设置中的ListView不显示其所有元素,只是没有将“属性”设置为true的元素.我想避免使用两个具有不同内容的ArrayAdapters,因为我以某种方式需要使它们保持同步.我尝试这样(这个方法现在只是假定在我们想要隐藏某些元素的设置中调用getView):
public View getView(int position,View convertView,Context context) {
....

    if(!arrayitems[position].isProperty()) { //arrayitems is the underlying array
        convertView.setVisibility(View.VISIBLE); 
    } 
    else {
        convertView.setVisibility(View.GONE); 
    }
    return convertView;
}

这个工作,但是如果元素的isProperty == true,我会得到一个白色行.我想让这一行在这个意义上看不见,它不再占用任何空间.那可能吗?

用于convertView的已使用的xml文件如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:paddingTop="5dp"
    android:paddingBottom="5dp"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/text_item_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="4dp"
            android:maxLines="1"
            android:ellipsize="none"
            android:textSize="12sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/text_item_status"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12sp"
            android:textStyle="bold" />

    </LinearLayout>

     <TextView android:id="@+id/text_item_text"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:textSize="12sp"
         android:maxLines="3"
         android:ellipsize="none" />

     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="2dp"
         android:orientation="horizontal" >

         <TextView
             android:id="@+id/text_item_rating"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginRight="4dp"
             android:textSize="10sp" />

         <TextView
             android:id="@+id/text_item_voted"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textSize="10sp" />

     </LinearLayout>

</LinearLayout>

我试图重播所有的android:layout_height =“wrap_content”与“fill_parent”,但它没有改变任何东西…

谢谢!

解决方法

将列表视图的所有内容的可见性设置为GONE,然后将视图的可见性设置为Gone ….这将隐藏行而不占用空间…..它可以为我工作,即使我一直在寻找这个,但经过研究,我发现这个….

编辑1:设置视图到GONE的可见性就足够了.不需要设置子元素的可见性.

猜你在找的Android相关文章