现在到点击公告列表到详情的时候了,没想到小问题出现了... ...
无法触发OnItemClick事件.
-----------------
根据以往的经验,想到了子控件里拦截了父控件的Click事件,因为很早以前就看到过这样的描述:
如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了,也就会响应onItemClickListener中的onItemClick()方法,然而将ListView的Item
Layout的子控件focusable属性设置为false有点繁琐,我们可以通过对Item
Layout的根控件设置其android:descendantFocusability=”blocksDescendant”即可.
使用无效.正纳闷之时,手滑了一下ListView,没想到再次点击,有效. 这一下就搞笑了.
多次测试发现了以下问题:
public void
onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int
totalItemCount) {
mLastItem
= firstVisibleItem + visibleItemCount;
if
(totalItemCount > mLastItem+1
&&totalItemCount>0)
{
if(mAnnouncementLv.getFooterViewsCount()>0){
mAnnouncementLv.removeFooterView(mLoadLayout);
}
}
OnItemClick的罪魁祸首就是那句标红的语句了.这是OnScrollListener里的方法.为什么removeFooterView会导致OnItemClick无效呢?
加载中,请稍候......