加载中…
正文 字体大小:

Android ListView无法触发ItemClick事件

(2012-03-13 11:21:52)
标签:

杂谈

现在到点击公告列表到详情的时候了,没想到小问题出现了... ...

无法触发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无效呢?

0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有