Android基礎(chǔ)之ListView的比較特別的屬性

本文來(lái)源:終端研發(fā)部? listView面試匯總忘巧,應(yīng)用開發(fā)者必須掌握的基本知識(shí)

1.首先是stackFromBottom屬性朱灿,值為true和false

stackFromBottom="true"????? 從下到上依次填充listview

stackFromBottom="false":? 從上到下依次填充listview

2.第二是transciptMode屬性,需要用ListView或者其它顯示大量Items的控件實(shí)時(shí)跟蹤或者查看信息债朵,并且希望最新的條目可以自動(dòng)滾動(dòng)到可視范圍內(nèi)。通過設(shè)置的控件transcriptMode屬性可以將Android平臺(tái)的控件(支持ScrollBar)自動(dòng)滑動(dòng)到最底部芥喇。

android:transcriptMode="alwaysScroll"

3.第三cacheColorHint屬性使套,很多人希望能夠改變一下它的背景罐呼,使他能夠符合整體的UI設(shè)計(jì),改變背景背很簡(jiǎn)單只需要準(zhǔn)備一張圖片然后指定屬性

android:background="@drawable/bg"

不過不要高興地太早侦高,當(dāng)你這么做以后嫉柴,發(fā)現(xiàn)背景是變了,但是當(dāng)你拖動(dòng)奉呛,或者點(diǎn)擊list空白位置的時(shí)候發(fā)現(xiàn)ListItem都變成黑色的了计螺,破壞了整體效果。

如果你只是換背景的顏色的話瞧壮,可以直接指定android:cacheColorHint為你所要的顏色登馒,如果你是用圖片做背景的話,那也只要將

android:cacheColorHint

指定為透明(#00000000)就可以了

4.第四divider屬性咆槽,該屬性作用是每一項(xiàng)之間需要設(shè)置一個(gè)圖片做為間隔陈轿,或是去掉item之間的分割線

android:divider="@drawable/list_driver"其中 @drawable/list_driver 是一個(gè)圖片資源,如果不想顯示分割線則只要設(shè)置為@null就可以了

5.第五fadingEdge屬性秦忿,上邊和下邊有黑色的陰影

android:fadingEdge="none"

設(shè)置后沒有陰影了~

6.第六scrollbars屬性麦射,作用是隱藏listView的滾動(dòng)條

android:scrollbars="none"

與setVerticalScrollBarEnabled(true);的效果是一樣的,不活動(dòng)的時(shí)候隱藏灯谣,活動(dòng)的時(shí)候也隱藏

7.第七是fadeScrollbars屬性

android:fadeScrollbars="true"

配置ListView布局的時(shí)候潜秋,設(shè)置這個(gè)屬性為true就可以實(shí)現(xiàn)滾動(dòng)條的自動(dòng)隱藏和顯示。

8.第八drawSelectorOnTop屬性

官方文檔描述:

When

set to true, the selector will be drawn over the selecteditem.

Otherwise the selector is drawn behind the selected item. Thedefault

value is false.

android:drawSelectorOnTop="true"

點(diǎn)擊某一條記錄胎许,顏色會(huì)顯示在最上面峻呛,記錄上的文字被遮住,所以點(diǎn)擊文字不放辜窑,文字就看不到

android:drawSelectorOnTop="false

一些常見的屬性:

android:listSelector=”@color/pink” //item選中時(shí)的顏色默認(rèn)為橙黃底色钩述。

android:divider=”#f9b68b” //分割線顏色

android:dividerHeight=”1dp” //分割線邊距

android:scrollbars=”none” //不顯示滾動(dòng)條

android:fadingEdge=”none” //去掉上邊和下邊黑色的陰影

android:divider=”#00000000”//設(shè)置Item之間無(wú)間隙

listView.setDividerHeight(0);//在javaCode中如下定義設(shè)置Item之間無(wú)間隙

android:divider=”@drawable/list_driver” //設(shè)置分割線的圖片資源

android:divider=”@drawable/@null” //不想顯示分割線

android:scrollbars=”none”//沒有滾動(dòng)條 -setVerticalScrollBarEnabled(true); //隱藏listView的滾動(dòng)條

android:fadeScrollbars=”true” //設(shè)置為true就可以實(shí)現(xiàn)滾動(dòng)條的自動(dòng)隱藏和顯示

寫在最后:

ListView 中圖片錯(cuò)位的問題是如何產(chǎn)生的?(原因是異步加載及對(duì)象被復(fù)用造成的)

圖片錯(cuò)位問題的本質(zhì)源于我們的 listview 使用了緩存 convertView谬擦,假設(shè)一種場(chǎng)景切距,一個(gè) listview一屏顯示九個(gè) item,那么在拉出第十個(gè) item 的時(shí)候惨远,事實(shí)上該 item 是重復(fù)使用了第一個(gè) item谜悟,也就是說(shuō)在第一個(gè) item 從網(wǎng)絡(luò)中下載圖片并最終要顯示的時(shí)候,其實(shí)該 item 已經(jīng)不在當(dāng)前顯示區(qū)域內(nèi)了北秽,此時(shí)顯示的后果將可能在第十個(gè) item 上輸出圖像葡幸,這就導(dǎo)致了圖片錯(cuò)位的問題。

解決辦法之一:

每次getView能給對(duì)象一個(gè)標(biāo)識(shí)贺氓,在異步加載完成時(shí)比較標(biāo)識(shí)與當(dāng)前行item的標(biāo)識(shí)是否一致蔚叨,一致則顯示,否則不做處理即可。

以使用imageloader為例子

holder.img_goods.setTag(url);

// 添加一個(gè)加載圖片的監(jiān)聽

imageLoader.displayImage(url, holder.img_goods, options, new ImageLoadingListener() {

@Override

public void onLoadingStarted(String s, View view) {

finalHolder.img_goods.setImageResource(R.mipmap.default);

}

@Override

public void onLoadingFailed(String s, View view, FailReason failReason) {

finalHolder.img_goods.setImageResource(R.mipmap.default);

}

@Override

public void onLoadingComplete(String s, View view, Bitmap bitmap) {

if (url.equals(finalHolder.img_goods.getTag())) {

finalHolder.img_goods.setImageBitmap(bitmap);

}

}

@Override

public void onLoadingCancelled(String s, View view) {

finalHolder.img_goods.setImageResource(R.mipmap.default);

}

});

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蔑水,一起剝皮案震驚了整個(gè)濱河市邢锯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搀别,老刑警劉巖丹擎,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異歇父,居然都是意外死亡蒂培,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門榜苫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)护戳,“玉大人,你說(shuō)我怎么就攤上這事垂睬∠被模” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵驹饺,是天一觀的道長(zhǎng)肺樟。 經(jīng)常有香客問我,道長(zhǎng)逻淌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任疟暖,我火速辦了婚禮卡儒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俐巴。我一直安慰自己骨望,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布欣舵。 她就那樣靜靜地躺著擎鸠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缘圈。 梳的紋絲不亂的頭發(fā)上劣光,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音糟把,去河邊找鬼绢涡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛遣疯,可吹牛的內(nèi)容都是我干的雄可。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼数苫!你這毒婦竟也來(lái)了聪舒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤虐急,失蹤者是張志新(化名)和其女友劉穎箱残,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戏仓,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疚宇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赏殃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敷待。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖仁热,靈堂內(nèi)的尸體忽然破棺而出榜揖,到底是詐尸還是另有隱情,我是刑警寧澤抗蠢,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布举哟,位于F島的核電站,受9級(jí)特大地震影響迅矛,放射性物質(zhì)發(fā)生泄漏妨猩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一秽褒、第九天 我趴在偏房一處隱蔽的房頂上張望壶硅。 院中可真熱鬧,春花似錦销斟、人聲如沸庐椒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)约谈。三九已至,卻和暖如春犁钟,著一層夾襖步出監(jiān)牢的瞬間棱诱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工特纤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留军俊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓捧存,卻偏偏與公主長(zhǎng)得像粪躬,于是被迫代替她去往敵國(guó)和親担败。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354