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

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

Android ListView之setEmptyView正確使用方法

2019-12-12 02:06:24
字體:
供稿:網(wǎng)友

Android ListView之setEmptyView正確使用方法

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

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

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

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

 下面我們執(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); } 

 其中重點(diǎn)看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,這兩個(gè)試圖互相隱藏顯示,來達(dá)到效果,而且updateEmptyStatus方法只有在listview的setEmptyView時(shí)才會(huì)執(zhí)行,所以當(dāng)你執(zhí)行mList.setVisibility(View.VISIBLE)的時(shí)候,listview被設(shè)置為可見,它覆蓋了emptyView,所以你看不到,如果想顯示emptyView,那就再執(zhí)行一遍setEmptyView方法。

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 民乐县| 壤塘县| 彭山县| 三都| 泾源县| 镇坪县| 平顶山市| 上虞市| 剑河县| 新津县| 阜新市| 信丰县| 南召县| 社旗县| 吴江市| 虞城县| 上蔡县| 青田县| 白沙| 剑河县| 安福县| 焉耆| 万山特区| 民权县| 锦屏县| 靖江市| 芦山县| 阳曲县| 福安市| 祁阳县| 宾川县| 镇宁| 潢川县| 襄城县| 大石桥市| 延庆县| 宜昌市| 东乡县| 电白县| 张家口市| 西吉县|