ListView 這些很有用的特殊屬性,你是不是還沒聽說過佑刷?

ListView 特殊屬性 & 常見問題

ListView 特殊屬性 & 常見問題

這里向大家介紹一些我個人認為比較 特別的屬性,通過設置這樣的屬性可以做出更加美觀的列表

一. ListView的一些特殊屬性

1. stackFromBottom屬性

android:stackFromBottom="true"酿炸。設置該屬性后你做好的列表就會顯示你列表的最下面瘫絮,值為true和false

2. transciptMode屬性

需要用ListView或者其它顯示大量Items的控件實時跟蹤或者查看信息,并且希望最新的條目可以自動滾動到可視范圍內(nèi)填硕。通過設置的控件transcriptMode屬性可以將Android平臺的控件(支持ScrollBar)自動滑動到最底部麦萤。
android:transcriptMode="alwaysScroll"

3. cacheColorHint屬性

很多人希望能夠改變一下它的背景,使他能夠符合整體的UI設計扁眯,改變背景背很簡單只需要準備一張圖片然后指定屬性 android:background="@drawable/bg"壮莹,不過不要高興地太早,當你這么做以后姻檀,發(fā)現(xiàn)背景是變了命满,但是當你拖動,或者點擊list空白位置的時候發(fā)現(xiàn)ListItem都變成黑色的了绣版,破壞了整體效果胶台。
如果你只是換背景的顏色的話狭莱,可以直接指定 android:cacheColorHint 為你所要的顏色,如果你是用圖片做背景的話概作,那也只要將android:cacheColorHint指定為透明(#00000000)就可以了

4. divider屬性

該屬性作用是每一項之間需要設置一個圖片做為間隔腋妙,或是去掉item之間的分割線
android:divider="@drawable/list_driver" 其中 @drawable/list_driver 是一個圖片資源,如果不想顯示分割線則只要設置為android:divider="@drawable/@null" 就可以了讯榕。android:dividerHeight="2dip" 設置兩個item之間的距離

5. headerDividersEnabled屬性

android:headerDividersEnabled="false"設成flase時骤素,此ListView將不會在頁眉視圖前畫分隔符。缺省值為true
android:footerDividersEnabled 設成flase時愚屁,此ListView將不會在頁腳視圖前畫分隔符济竹。此屬性缺省值為true

6. fadingEdge屬性

上邊和下邊有黑色的陰影(類似邊框的東西)
android:fadingEdge="none" 設置后沒有陰影了~

7. scrollbars屬性

作用是隱藏listView的滾動條,
android:scrollbars="none"setVerticalScrollBarEnabled(true);的效果是一樣的霎槐,不活動的時候隱藏送浊,活動的時候也隱藏

8. fadeScrollbars屬性

android:fadeScrollbars="true" 配置ListView布局的時候,設置這個屬性為true就可以實現(xiàn)滾動條的自動隱藏和顯示丘跌。

9. fastScrollEnabled屬性

很多開發(fā)者不知道ListView列表控件的快速滾動滑塊是如何啟用的袭景,這里告訴大家,輔助滾動滑塊只需要一行代碼就可以搞定闭树,如果你使用XML布局只需要在ListView節(jié)點中加入 android:fastScrollEnabled="true" 這個屬性即可耸棒,而對于Java代碼可以通過myListView.setFastScrollEnabled(true)來控制啟用,參數(shù)false為隱藏报辱。 還有一點就是當你的滾動內(nèi)容較小与殃,不到當前ListView的3個屏幕高度時則不會出現(xiàn)這個快速滾動滑塊,同時該方法仍然是AbsListView的基礎方法碍现,可以在ListView或GridView等子類中使用快速滾動輔助幅疼。

10. drawSelectorOnTop屬性

android:drawSelectorOnTop="true" 點擊某一條記錄,顏色會顯示在最上面昼接,記錄上的文字被遮住爽篷,所以點擊文字不放,文字就看不到
android:drawSelectorOnTop="false"點擊某條記錄不放辩棒,顏色會在記錄的后面狼忱,成為背景色膨疏,但是記錄內(nèi)容的文字是可見的

11. listSelector屬性

android:listSelector="#00000000 " 改變選中item時的顏色一睁。默認為橙黃底色(依手機系統(tǒng)而定)

12. scrollingCache屬性

android:scrollingCache="false"去除拖動時ListView背景為黑色

13. soundEffectsEnabled屬性

android:soundEffectsEnabled="false" 點擊和觸摸時是否有聲音效果,缺省值為true(只有系統(tǒng)設置中開啟了觸摸提示音才有效)

二. 解決ListView item中含有Button或者Checkable的子類控件點擊時沖突

由于在你自己定義的Item中存在諸如Button或者Checkable的子類控件,此時這些子控件會將焦點獲取到佃却,所以常常當點擊item時變化的是子控件者吁,item本身的點擊沒有響應。這時候就可以使用descendantFocusability來解決啦饲帅,API描述如下:

android:descendantFocusability
Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.
Must be one of the following constant values.

該屬性是當一個為view獲取焦點時复凳,定義viewGroup和其子控件兩者之間的關系瘤泪。
屬性的值有三種:

  • beforeDescendants:viewgroup會優(yōu)先其子類控件而獲取到焦點
  • afterDescendants:viewgroup只有當其子類控件不需要獲取焦點時才獲取焦點
  • blocksDescendants:viewgroup會覆蓋子類控件而直接獲得焦點

所以解決辦法:

  1. 在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的屬性。
  2. 在當前ListView的xml里添加android:descendantFocusability=”blocksDescendants” 在item的xml里的Button添加android:focusable="false"的屬性育八。

三. listview的item點擊事件會使里面的Button也出現(xiàn)按壓的效果

兩個方案:

  1. 放棄listview的onItemClickedListener()对途。listview.setOnItemClickedListener(null);
  2. 使用自定義的Button,判斷他的父控件是否press髓棋,如果是就把這個事件消耗掉实檀,不向下傳遞即可;
import android.content.Context;  
import android.util.AttributeSet;  
import android.view.View;  
import android.widget.Button;  
  
public class CustomButton extends Button {  
    public CustomButton(Context context) {  
        super(context);  
    }  
  
    public CustomButton(Context context, AttributeSet attrs) {  
        super(context, attrs);  
    }  
  
    public CustomButton(Context context, AttributeSet attrs, int defStyle) {  
        super(context, attrs, defStyle);  
    }  
  
    @Override  
    public void setPressed(boolean pressed) {  
        if (pressed && getParent() instanceof View && ((View) getParent()).isPressed()) {  
            return;  
        }  
        super.setPressed(pressed);  
    }  
  
}    

參考來源:
“一勤天下無難事” 博客
CSDN博客

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末按声,一起剝皮案震驚了整個濱河市膳犹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌签则,老刑警劉巖须床,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異渐裂,居然都是意外死亡豺旬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門柒凉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哈垢,“玉大人,你說我怎么就攤上這事扛拨≡欧郑” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵绑警,是天一觀的道長求泰。 經(jīng)常有香客問我,道長计盒,這世上最難降的妖魔是什么渴频? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮北启,結(jié)果婚禮上卜朗,老公的妹妹穿的比我還像新娘。我一直安慰自己咕村,他們只是感情好场钉,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著懈涛,像睡著了一般逛万。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上批钠,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天宇植,我揣著相機與錄音得封,去河邊找鬼。 笑死指郁,一個胖子當著我的面吹牛忙上,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闲坎,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼晨横,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了箫柳?” 一聲冷哼從身側(cè)響起手形,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悯恍,沒想到半個月后库糠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡涮毫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年瞬欧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罢防。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡艘虎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咒吐,到底是詐尸還是另有隱情野建,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布恬叹,位于F島的核電站候生,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绽昼。R本人自食惡果不足惜唯鸭,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望硅确。 院中可真熱鬧目溉,春花似錦、人聲如沸菱农。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽大莫。三九已至蛉腌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間只厘,已是汗流浹背烙丛。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留羔味,地道東北人河咽。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像赋元,于是被迫代替她去往敵國和親忘蟹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,501評論 25 707
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程搁凸,因...
    小菜c閱讀 6,358評論 0 17
  • 今天原本是要去為我的產(chǎn)品做線下推廣的媚值,結(jié)果前幾天孩子哮喘復發(fā)預計今天沒法參加就早早地給退了。這個活動是區(qū)婦聯(lián)辦的护糖,...
    透明的橙閱讀 102評論 0 0
  • 給大家分享一本色彩明亮褥芒,充滿想象力的繪本,叫做《怪獸顛倒樂》嫡良,意大利原版引進锰扶,江西美術出版社出版。 色彩刺激對孩子...
    申湘黔閱讀 327評論 0 0
  • 今天在北京朝陽區(qū)和朋友婉暉及天琦三個人一起吃飯甩苛,吃著聊著忙干,突然婉暉問了我這么個問題,讓我回答浪藻,我突然間回...
    顏大千閱讀 1,695評論 3 4