隐藏整个列表视图,项目数 = 0

问题描述 投票:0回答:5

当项目数为 0 时,我需要动态隐藏我的

ListView
ListView
有物品。我可以使用按钮删除该项目并更新列表。但我想隐藏列表并在项目数为 0 时显示
TextView

我想我需要将其设置在适配器中,但是如何设置?

更新:我不清楚。我想动态隐藏它。我确实知道如何隐藏,只是不知道如何动态隐藏。

android listview
5个回答
2
投票

好的做法是为列表视图设置空视图,如下所示

listView = (ListView) findViewById(R.id.listView);
listView.setEmptyView(findViewById(R.id.textView));

1
投票

listview
返回 0 时,将
View.GONE
的可见性设置为
View.INVISIBLE
adapter.getCount()


1
投票

嗨,使用这个并根据您的要求更改适配器和布局

ListAdapter adapter = new ListAdapter(getApplicationContext(),
            R.layout.activity_list, listArray);

 //Check Here about listView Items

    if (adapter.getCount() == 0) {
        mlist.setVisibility(View.GONE);
        txt.setVisibility(View.VISIBLE);
    }
    mlist.setAdapter(adapter);

1
投票

如果您已经制作了自定义适配器,那么您可以执行以下操作:

if(getCount() ==0 ) {
    listView.setVisibility(View.INVISIBLE);
    textview.setVisibility(View.VISIBLE);
}

如果您尚未制作自定义适配器,请检查正在处理列表项的数组。如果为零,则将列表设置为不可见,并使文本视图可见。

if(arrayname.size == 0) {
    listView.setVisibility(View.INVISIBLE);
    textview.setVisibility(View.VISIBLE);
}

0
投票

使用 FrameLayout 或 ConstraintLayout 如下

   <FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:text="Number of items 0"
        android:layout_gravity="center"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</FrameLayout>

使用适配器计数来检查适配器大小,或者您可以直接使用传递给适配器构造函数的列表,如下所示。

        binding.btnDelete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            list.remove(your_index);
            if(list.size() <= 0) {
                binding.recyclerView.setVisibility(View.GONE);
            }
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.