国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android ListView之setEmptyView正確使用方法

2019-10-22 18:28:37
字體:
供稿:網(wǎng)友

Android ListView之setEmptyView正確使用方法

 我們知道ListView組件提供了一個空數(shù)據(jù)是的視圖設(shè)置方法setEmptyView,該方法存在一個詬病,就是空視圖和listview組件要在一個Parent中,這個就不在此細說,下面說另一個問題,原因其實和前面那個問題同出一轍。

 假如emptyView和listview在布局中,已經(jīng)屬于同一個parent,設(shè)置EmptyView的代碼如下

private void setEmptyView(){   emptyTv.setText(getString(R.string.txt_no_data_refreshable));   mList.setEmptyView(empty); } 

 假如沒有數(shù)據(jù),運行,一切正常。

 下面我們執(zhí)行一句代碼后

mList.setVisibility(View.VISIBLE); 

 我們發(fā)現(xiàn),emptyView看不到了,奇怪!

 我們來看一下listview的setEmptyView的代碼

public void setEmptyView(View emptyView) {   mEmptyView = emptyView;    // If not explicitly specified this view is important for accessibility.   if (emptyView != null       && emptyView.getImportantForAccessibility() == IMPORTANT_FOR_ACCESSIBILITY_AUTO) {     emptyView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);   }    final T adapter = getAdapter();   final boolean empty = ((adapter == null) || adapter.isEmpty());   updateEmptyStatus(empty); } 

 其中重點看updateEmptyStatus的源碼

private void updateEmptyStatus(boolean empty) {   if (isInFilterMode()) {     empty = false;   }    if (empty) {     if (mEmptyView != null) {       mEmptyView.setVisibility(View.VISIBLE);       setVisibility(View.GONE);     } else {       setVisibility(View.VISIBLE);     }     if (mDataChanged) {             this.onLayout(false, mLeft, mTop, mRight, mBottom);      }   } else {     if (mEmptyView != null) mEmptyView.setVisibility(View.GONE);     setVisibility(View.VISIBLE);   } } 

 我們發(fā)現(xiàn),控制emptyView的顯示,就是隱藏listview,這兩個試圖互相隱藏顯示,來達到效果,而且updateEmptyStatus方法只有在listview的setEmptyView時才會執(zhí)行,所以當你執(zhí)行mList.setVisibility(View.VISIBLE)的時候,listview被設(shè)置為可見,它覆蓋了emptyView,所以你看不到,如果想顯示emptyView,那就再執(zhí)行一遍setEmptyView方法。

 如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 惠东县| 鄱阳县| 定兴县| 保康县| 乌鲁木齐市| 明光市| 应用必备| 保亭| 孝昌县| 汝阳县| 卓资县| 高陵县| 商水县| 扎鲁特旗| 西丰县| 昌都县| 邵阳市| 太保市| 松滋市| 临城县| 大化| 房山区| 渭南市| 隆德县| 西城区| 呈贡县| 琼海市| 革吉县| 陆川县| 浦城县| 徐汇区| 墨玉县| 泰兴市| 托克逊县| 扎鲁特旗| 威信县| 乳山市| 永安市| 嵊泗县| 阳高县| 祁连县|