gpt4 book ai didi

android - 在不占用空间的情况下从 ListView 中隐藏行

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:57:18 40 4
gpt4 key购买 nike

我有一个带有关联 ArrayAdapter 的 ListView,它在多个 Activity 中显示其内容。不幸的是,现在有必要了,我在其中一个设置中的 ListView 不显示其所有元素,而只显示“属性”未设置为 true 的元素。我想避免使用两个具有不同内容的 ArrayAdapter,因为那时我需要以某种方式使它们保持同步。我这样试过(这个方法现在假设在我们想要隐藏某些元素的设置中调用了 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>

我尝试用“fill_parent”重播所有 android:layout_height="wrap_content"但它没有改变任何东西......

谢谢!

最佳答案

将 ListView 的所有内容的可见性设置为 GONE,然后将 View 的可见性设置为 Gone....这将隐藏该行而不占用空间......它对我有用,即使我有一直在寻找这个,但经过研究我发现了这个....

编辑 1:将 View 的可见性设置为 GONE 就足够了。无需设置子元素的可见性。

关于android - 在不占用空间的情况下从 ListView 中隐藏行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13646147/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com