Android 開發中踩過的坑之六:幾個關於View的tips

這幾個點, 不算是坑, 可是也確實浪費了我一些時間android


一、ScrollView的高設置成"wrap_content"會縮的很小, 佈局

ScrollView內只容許嵌套一個View, 而且不要將他的高度設置爲"wrap_content", 不然它會縮小到很短的樣子. spa

ListView也是同樣. 對象


二、ListView中的Item若是有不一樣的樣式,最好使用getItemViewType()來區別圖片

事實上, 在ListView的Item徹底能夠用一種View佈局來控制Visiable/Gone, 從而產生不一樣的ItemView. 內存

可是, 這樣有一些壞處, 1是getView()方法的邏輯會有些複雜, 2是可能會浪費一些inflate時間, 由於有一部分View是要被Gone掉的, 必需要被顯示也就不該該被inflate, inflate須要IO, 而IO是一個比較耗時的操做.3浪費內存, 既然沒必要要顯示, 就不該該有這個對象.get

BaseAdapter天生有區別ItemView的功能, 重寫getItemViewType()方法和getViewTypeCount()就能夠實現. 同時在getView()中只須要簡單的switch-case就能夠處理不一樣的ItemView了.it


三、ImageView並無先適配寬度,而後根據寬度適配高度的模式。List

這個坑踩了兩次. 一直覺得android足夠強大, 可是這個事它真的沒作.方法

 ImageView有不少圖片縮放的模式, 可是沒有任何一個模式知足先適配寬度, 再根據寬度適配高度的效果. 在嘗試了不少次模式組合後, 明白這一點. 因此要作到這一點, 只有老老實實的根據屏幕寬度, 算出合適的圖片寬度, 而後根據圖片的寬高比例算出圖片應有的高度, 設置成IamgeView的寬和高.

相關文章
相關標籤/搜索