我有一個Android應用程序,我隱藏並顯示頁面上的不同自定義項目。有沒有辦法循環頁面上設置爲view.gone的所有項目,或者我將不得不爲每個ID做一個if?有沒有辦法找到頁面上的所有View.GONE元素?
非常感謝
我有一個Android應用程序,我隱藏並顯示頁面上的不同自定義項目。有沒有辦法循環頁面上設置爲view.gone的所有項目,或者我將不得不爲每個ID做一個if?有沒有辦法找到頁面上的所有View.GONE元素?
非常感謝
要找到隱藏的意見,你可以這樣做:
LinearLayout parentLayout = (LinearLayout) findViewById(R.id.parent_layout);
int childViews = parentLayout.getChildCount();
List<View> hiddenViews = new ArrayList<View>();
for (int i = 0; i < childViews; i++) {
View v = parentLayout.getChildAt(i);
if (v.getVisibility() == View.GONE) {
hiddenViews.add(v);
}
}
在這個例子中,List<View> hiddenViews
將包含與View.GONE
知名度所有視圖。
當您將他們的可見性設置爲GONE
時,同時將它們添加到預先設定的arraylist
,這樣您將始終有一個不可見的視圖記錄。
In OnCreate:
hiddenViews = new ArrayList<View>();
在設定自己的知名度:
view.setVisibility(View.GONE);
hiddenViews.add(view);
現在,你可以在任何時候內activity
訪問hiddenViews
的ArrayList。
頁面你的意思是佈局? – Blackbelt
對不起,它們隱藏在代碼中,但它的佈局我的意思是 – TMB87
你可以遍歷整個UI樹(比如HierarchyViewer),但是這太慢而不實用。您最好查看已知ID的列表,如果您已將某些查找緩存到某個位置,例如在自定義視圖的實例字段中或查看保存器中,則更好。 – Barend