如何设置空的ListView背景图像?

时间:2011-06-06 11:07:14

标签: android image listview background

如何设置listview背景如下。 我想在记录数0时出现

enter image description here

5 个答案:

答案 0 :(得分:14)

ListView - setEmptyView()中有特殊方法。您可以找到使用它的示例herehere

更新:第二个链接现在不可用。以下是文章引用:

  

当您以编程方式设置ListView的“空视图”时,您最终可能会在列表为空时忘记为什么空视图实际上不显示。   如果发生这种情况,那么您忘记了必须手动将空视图添加到视图层次结构中,因为ListView不会为您执行此操作。虽然很明显,当你想到它时,文档没有提到这个细节,谷歌搜索显示至少有一个人有这个问题。

     

这是带有线条的代码,在数字4和5处很容易忘记......

TextView emptyView = new TextView(context);
emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
emptyView.setText(“This appears when the list is empty”);
emptyView.setVisibility(View.GONE);
((ViewGroup)list.getParent()).addView(emptyView);
list.setEmptyView(emptyView);

答案 1 :(得分:7)

只需在父布局中设置背景图像,然后将ListView的颜色设置为完全透明:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    style="@style/Main" android:background="@drawable/background">
    <ListView android:cacheColorHint="#00000000" .../>
</LinearLayout>

答案 2 :(得分:3)

阅读documentation of the ListActiviy。您可以定义一个视图,该视图将在列表为空且没有项目时自动显示。空列表的视图必须具有标识android:id/empty

所以不需要玩背景。

答案 3 :(得分:0)

您可以使用ListView.setBackgroundDrawable()

将drawable设置为背景

答案 4 :(得分:0)

在将array / arraylist传递到adapter之前,如果array / arraylist的长度为0,则需要先检查,然后将此图片添加到您的主要布局。