当项目数为 0 时,我需要动态隐藏我的
ListView
。
ListView
有物品。我可以使用按钮删除该项目并更新列表。但我想隐藏列表并在项目数为 0 时显示 TextView
。
我想我需要将其设置在适配器中,但是如何设置?
更新:我不清楚。我想动态隐藏它。我确实知道如何隐藏,只是不知道如何动态隐藏。
好的做法是为列表视图设置空视图,如下所示
listView = (ListView) findViewById(R.id.listView);
listView.setEmptyView(findViewById(R.id.textView));
当
listview
返回 0 时,将 View.GONE
的可见性设置为 View.INVISIBLE
或 adapter.getCount()
嗨,使用这个并根据您的要求更改适配器和布局
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);
如果您已经制作了自定义适配器,那么您可以执行以下操作:
if(getCount() ==0 ) {
listView.setVisibility(View.INVISIBLE);
textview.setVisibility(View.VISIBLE);
}
如果您尚未制作自定义适配器,请检查正在处理列表项的数组。如果为零,则将列表设置为不可见,并使文本视图可见。
if(arrayname.size == 0) {
listView.setVisibility(View.INVISIBLE);
textview.setVisibility(View.VISIBLE);
}
使用 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);
}
}
});