Android基礎控件使用細節——ListView
發表時(shí)間:2021-1-4
發布人(rén):融晨科技
浏覽次數:47
這(zhè)個(gè)系列準備了(le/liǎo)很久,由于(yú)項目比較緊,一直沒時(shí)間寫博客。
ListView是(shì)Android開發中使用比較廣泛的(de)控件了(le/liǎo),這(zhè)裏會結合實際開發中的(de)問題,做一個(gè)彙總,并不(bù)斷更新補充,希望以(yǐ)後可以(yǐ)幫到(dào)更多需要(yào / yāo)的(de)朋友!
有時(shí)候爲(wéi / wèi)了(le/liǎo)精簡代碼,不(bù)使用xml布局文件了(le/liǎo),直接setContentView(mListView);,這(zhè)時(shí)就(jiù)要(yào / yāo)用到(dào)代碼裏硬編碼設置ListView的(de)樣式了(le/liǎo),本人(rén)開發時(shí)遇到(dào)一個(gè)奇葩問題,給ListView設置分割線,沒有效果,擦,坑爹呢,找了(le/liǎo)好多資料,遇到(dào)這(zhè)問題的(de)不(bù)是(shì)我一個(gè)人(rén),竟然沒人(rén)解決,有人(rén)甚至妥協了(le/liǎo),使用了(le/liǎo)Xml文件,這(zhè)其實是(shì)Android代碼的(de)問題,setDivider和(hé / huò)setDividerHeight順序必須一前一後,颠倒了(le/liǎo)就(jiù)不(bù)好使,忽然感覺自己的(de)腦袋不(bù)夠用了(le/liǎo)哈。記住就(jiù)行了(le/liǎo)!沒有辣麽多爲(wéi / wèi)神馬!
// 設置列表的(de)樣式 ListView mListView = (ListView) findViewById(R.id.mListView); mListView.setBackgroundColor(Color.parseColor("#F1F1F1")); mListView.setPadding(20, 20, 20, 20); mListView.setVerticalScrollBarEnabled(false); // Android敗筆:設置分割線顔色(這(zhè)兩行代碼位置不(bù)能反置否則無效果) mListView.setDivider(new ColorDrawable(Color.TRANSPARENT)); mListView.setDividerHeight(6); setContentView(mListView);
接着上(shàng)一個(gè)ListView,再設置一個(gè)空界面(當List列表沒有數據時(shí)候顯示的(de)溫馨提示),這(zhè)裏需要(yào / yāo)ListView的(de)Parent來(lái)添加了(le/liǎo),當然可以(yǐ)不(bù)用xml,也(yě)可以(yǐ)硬編碼new出(chū)一個(gè)布局,由于(yú)我的(de)項目裏要(yào / yāo)顯示特殊的(de)圖片效果,隻能仍痛割愛用了(le/liǎo)xml布局文件。稍後我會寫一下xml完成ListView和(hé / huò)EmptyView的(de)示例代碼。
// 設置列表爲(wéi / wèi)空的(de)顯示界面 LayoutInflater inflater = LayoutInflater.from(mContext); View view = inflater.inflate(R.layout.layout_empty, null); ((ViewGroup) mListView.getParent()).addView(view); ImageView empImg = (ImageView) findViewById(R.id.empImg); TextView empTip = (TextView) findViewById(R.id.empTip); empImg.setImageResource(R.drawable.ic_logo_empty); empTip.setText("沒有相關的(de)數據"); mListView.setEmptyView(view);