android - Listview里面Headerview的问题

 嘉心面包-1908 发布于 2022-10-31 13:54

Listview添加了Headerview,Headerview里面有一个Gridview显示图片,结果Gridview图片无法响应点击事件?!

        LayoutInflater inflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View Header=inflater.inflate(R.layout.card_view_detail,null);
        mListView.addHeaderView(Header);
        mListView.setAdapter(null);
        
        final MyGridView de_images1=(MyGridView)Header.findViewById(R.id.de_images1);
        
        //判断微博中是否有图片
        if (!StringUtil.isEmpty(list.thumbnail_pic)){
            final ArrayList list2=list.pic_urls;
            de_r14.setVisibility(View.VISIBLE);
            //九宫格显示图片
            int w=0;
            int wh=(SysUtils.getScreenWidth(WeiboDetail.this)- SysUtils.Dp2Px(WeiboDetail.this, 99))/3;
            switch (list2.size()){
                case 1:
                    w=wh;
                    de_images1.setNumColumns(1);
                    break;
                case 2:
                case 4:
                    w=2*wh+ SysUtils.Dp2Px(WeiboDetail.this, 2);
                    de_images1.setNumColumns(2);
                    break;
                case 3:
                case 5:
                case 6:
                    w=wh*3+SysUtils.Dp2Px(WeiboDetail.this, 2)*2;
                    de_images1.setNumColumns(3);
                    break;
                case 7:
                case 8:
                case 9:
                    w=wh*3+SysUtils.Dp2Px(WeiboDetail.this, 2)*2;
                    de_images1.setNumColumns(3);
                    break;
            }
            RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(w, RelativeLayout.LayoutParams.WRAP_CONTENT);
            de_images1.setLayoutParams(lp);
            GridViewAdapter nearByInfoImgsAdapter = new GridViewAdapter(WeiboDetail.this, list2);
            de_images1.setAdapter(nearByInfoImgsAdapter);
            //点击事件,点击没反应
            de_images1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView arg0, View arg1,int arg2, long arg3) {
                    Intent intent = new Intent(WeiboDetail.this, ImagePagerActivity.class);
                    
                    intent.putExtra(ImagePagerActivity.EXTRA_IMAGE_URLS, Tools.getOriginalPicUrls(list2));
                    intent.putExtra(ImagePagerActivity.EXTRA_IMAGE_INDEX, arg2);
                    startActivity(intent);
                }
            });
        }else {
            de_r14.setVisibility(View.GONE);
        }
2 个回答
  • "Headerview里面只有Gridview的Item无法触发click事件,其他的Button都是可以触发click事件的".
    把上述Button改成TextView试试。

    2022-10-31 23:18 回答
  • 你代码都没有,只能说一般套路绑定该控件实现监听事件

    2022-10-31 23:18 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有