近期做一個消息列表,發現fragment的listview載入消息出來后,每條消息都點擊不了。經過詢問和查下已解決
開發中非經常見的一個問題,項目中的listview不不過簡單的文字,經常須要自定義listview。自己的Adapter去繼承BaseAdapter,在adapter中依照需求進行編寫。問題就出現了,可能會發生點擊每個item的時候沒有反應。無法獲取的焦點。原因多半是因為在你自定義的Item中存在諸如ImageButton,Button,CheckBox等子控件(也能夠說是Button或者Checkable的子類控件),此時這些子控件會將焦點獲取到,所以經常當點擊item時變化的是子控件。item本身的點擊沒有響應。
這時候就能夠使用descendantFocusability來解決啦,API描寫敘述例如以下:
android:descendantFocusability
該屬性是當一個為view獲取焦點時,定義viewGroup和其子控件兩者之間的關系。
屬性的值有三種:
beforeDescendants:viewgroup會優先其子類控件而獲取到焦點
afterDescendants:viewgroup僅僅有當其子類控件不須要獲取焦點時才獲取焦點
blocksDescendants:viewgroup會覆蓋子類控件而直接獲得焦點
通常我們用到的是第三種,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的屬性。
問題解決。