2015-10-21 63 views
1

我有一個自定義ListView,它是viewPager的選項卡之一。setEmptyView不工作在自定義ListView中

public class MyListView extends ListView 

我實例使用

ListView myList = new MyListView(context); 
View emptyView = myLayoutInflater().inflate(R.layout.mylist_empty_view, null); 
myList.setEmptyView(emptyView); 
myList.setAdapter(myAdapter); 

然而emptyView一直沒有出現我的類的對象和setEmptyView,沒有父母(在理想情況下應該是列表視圖),我不能看到它在hierarchyViewer。我需要做什麼?

回答

0

AdapterView只管理emptyView的可見性。如果適配器爲空或null,則ListView的可見性將爲GONE,而emptyViewVISIBLE,但要使其顯示出來,您需要自行將其添加到佈局中。

剛剛嘗試使用此佈局

FrameLayout myLayout = new FrameLayout(context); 
myLayout.addView(myList); 
myLayout.addView(emptyView); 

,而不是直接myList

+0

這並不完全如何,應該是正確的。然後,ListView中的setEmptyView指向什麼?我不想添加一個frameLayout。我希望ListView成爲ViewPager的子元素,emptyView是listview的子元素。 – user2759617

+0

@ user2759617這樣做您需要實現您自己的適配器。在那裏你可以顯示一個視圖,如果沒有數據。 ListView不會管理其他視圖,而不是由適配器本身創建的視圖。 – tynn

+0

我有我自己的適配器。但一般流程應該是,我設置適配器,在listView上設置空視圖,然後如果適配器爲空,則listview使空視圖可見。否則它應該隱藏它。這應該是一般流程。不知道爲什麼它不與查看傳呼機一起工作。 – user2759617