2013-01-25 118 views
1

我有一个包含2名列表视图的片段。我尝试为它们中的每一个设置EmptyView。 我试图通过XML使用@ id/android:empty和通过代码添加它们,两次都得到忽略。多个列表视图和空视图

任何人得到了它的两个列表视图和diffent空视图的工作?

回答

0

这是工作,你必须确保该View(为空的状态)添加到您的布局,其中ListView是英寸

此外,Adapter为您ListView必须nullisEmpty()必须为真才能显示空白视图。

如果你有问题还是,张贴一些代码。

+0

我做了这个,它不工作。这两个listview都在LinearLayout中,这个textview应该是空视图。 – Kitesurfer

0

我觉得@Leandros是在正确的轨道上,你需要确保每个列表的设置是否正确。这听起来像是当你在同一个xml中定义了两次@id/android:empty时,可能会有不匹配。你可能需要给他们唯一的id,然后把它们连接到java中。

你的XML可能是这个样子:

... 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    > 
    <ListView 
     android:id="@+id/list1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     /> 
    <TextView 
     android:id="@+id/empty1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="List 1 is empty" 
     /> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    > 
    <ListView 
     android:id="@+id/list2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     /> 
    <TextView 
     android:id="@+id/empty2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="List 2 is empty" 
     /> 
</LinearLayout> 
... 

然后在该片段中,你需要抓住的意见后再进行安装。

... 
    ListView list1 = (ListView)findViewById(R.id.list1); 
    View empty1 = findViewById(R.id.empty1); 
    list1.setEmptyView(empty1); 

    ListView list2 = (ListView)findViewById(R.id.list2); 
    View empty2 = findViewById(R.id.empty2); 
    list2.setEmptyView(empty2); 
... 

如果你真的想要一个更复杂的空视图,你可以在你的xml中包含另一个布局而不是TextView。

... 
    <include layout="@layout/empty" 
     android:id="@+id/list1" 
     /> 
... 
    <include layout="@layout/empty" 
     android:id="@+id/list2" 
     /> 
... 

我希望这有助于!

+0

如何为多个listview设置单个空视图? –