2012-09-29 33 views
1

沒有要求視圖具有唯一的ID。您可以膨脹一個視圖,然後將該視圖添加到另一個視圖中。例如。如何檢查一個視圖的引用是否在android的另一個視圖內?

myFooterReference = inflate (my_footer) 
    myListView.addFooterView(myFooterReference) 

是否總是有效?

myListView.removeFooterView(myFooterReference) 

我們現在還沒有一個選項,先檢查

myListView.findViewById(R.id.my_footer_id) // because no such footer exists 

因此,whats了這個傢伙?試圖通過引用刪除視圖,即使它不存在也是有效的。有沒有人有過這樣的錯誤?

爲什麼Android SDK中沒有一個方法,任何理論:

myListView.hasView(listViewReference); 

或至少

myListView.hasFooterView(listViewReference) ? 

它的項目數,但爲什麼沒有方法,如果給定的頁腳告訴在那兒?

回答

1

您能得到您的視圖的父:

view.getParent(); 

,並檢查是否有父,是它的父你的ListView或沒有?

但是,如果你不喜歡這些檢查,一般最好的解決辦法是剛剛實現,做你想要的佈局,根據需要,還可以跟蹤它在有趣的觀點你自己的佈局管理器。
見本頁:Check if a View contains another View

+0

我看到所以你建議如果(view.getParent == containingView)那麼列表包含。 –

+0

是否認爲這將可靠地工作在列表視圖內的頁腳視圖? –

+0

@CodeDroid呢? getParent或佈局管理器? – hasanghaforian

相關問題