Android GridView 第一个Item 点击没反应

  @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        final ViewHolder viewHolder;
        final String path = list.get(position);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.grid_child_item, null);
            viewHolder = new ViewHolder();
            viewHolder.mLinearLayout = (FrameLayout) convertView.findViewById(R.id.childLinearLayout);
            viewHolder.mImageView = (MyImageView) convertView.findViewById(R.id.child_image);
            viewHolder.mCheckBox = (CheckBox) convertView.findViewById(R.id.child_checkbox);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
            viewHolder.mImageView.setImageResource(R.drawable.friends_sends_pictures_no);
        }

        viewHolder.mLinearLayout.getLayoutParams().height = mGridView.getWidth() / 3;

        viewHolder.mImageView.setTag(path);
        viewHolder.mImageView.setOnMeasureListener(new MyImageView.OnMeasureListener() {
            @Override
            public void onMeasureSize(int width, int height) {
                mPoint.set(width, height);
            }
        });
        viewHolder.mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                addAnimation(viewHolder.mCheckBox, viewHolder.mImageView);
            }
        });
        viewHolder.mImageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (viewHolder.mCheckBox.isChecked() || baseApplication.IsMaxCount() == false) {
                    if (viewHolder.mCheckBox.isChecked()) {
                        viewHolder.mCheckBox.setChecked(false);
                    } else {
                        viewHolder.mCheckBox.setChecked(true);
                    }
                    viewHolder.mCheckBox.setFocusable(false);
                }
            }
        });
        if (baseApplication.fetchListPath().contains(path)) {
            viewHolder.mCheckBox.setChecked(true);
        } else {
            viewHolder.mCheckBox.setChecked(false);
        }
        Bitmap bitmap = null;
        if (!isScrollStatue()) {
            bitmap = NativeImageLoader.getInstance().loadNativeImage(path, mPoint,
                    new NativeImageLoader.NativeImageCallBack() {
                        @Override
                        public void onImageLoader(Bitmap bitmap, String path) {
                            ImageView mImageView = (ImageView) mGridView.findViewWithTag(path);
                            if (bitmap != null && mImageView != null) {
                                mImageView.setImageBitmap(bitmap);
                            }
                        }
                    });
        }
        if (bitmap != null) {
            viewHolder.mImageView.setImageBitmap(bitmap);
        } else {
            viewHolder.mImageView.setImageResource(R.drawable.friends_sends_pictures_no);
        }
        return convertView;
    }
要这样设置高度 viewHolder.mLinearLayout.getLayoutParams().height = mGridView.getWidth() / 3;否则第一个item点击没反应
时间: 2024-08-28 19:06:47

Android GridView 第一个Item 点击没反应的相关文章

Android GridView子元素item按击交互设计:背景颜色改变

<Android GridView子元素按击交互设计:背景颜色改变> 效果图: 大致的需求和ListView相仿,就是要求用户点击GridView中的子元素时候,要有一定的交互响应(背景颜色改变表明用户的操作).重点是在GridView的适配器中,子元素的布局文件中,把android:background属性配置成一个响应的selector,在selector中分别处理android:state_pressed事件在true和false两种状态下的情况. 首先写一个MainActivity:

Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色

今天作一个项目,就是做视频app,如果电视剧的话有许多剧集,点击一个item,播放不同的剧集,要有点击效果,并且默认是选择第一个.花费了一段时间,自己觉得有点难 度,现在和大家分享一下,下面是效果显示: 这个类是例子主类: <span style="font-size:14px;">public final class MainActivity extends Activity { private GridView gridView; private ArrayList&l

解决GridView动态设置宽高导致第一个item点击不响应或显示不正常问题

最近做项目的时候遇到了2次这个问题,现在分享一下经验 一.问题 问题代码: </pre><p><pre name="code" class="java">@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub final ViewHolder holder

Fragment里面的ListView的item点击没反应

最近做一个消息列表,发现fragment的listview加载消息出来后,每条消息都点击不了,经过询问和查下已解决 开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点.原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是B

Android 中listview的item点击事件失效了的解决办法

原因多半是由于在自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应. 即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了

Android开发—解决自定义GridView高度第一个item高度异常问题

问题描述: 在写之前,先把问题的图贴出来,问题如下图,GridView的第一个item的自定义高度显示不正常(再次加载之后又正常),不是预设的高度: 解决方法: 首先需要申明,这个GridView 的适配器用的是BaseAdapter,在定义适配器的getView方法中,主要注意代码中/***********/标记的地方,下面贴出我的getView方法: public View getView(int position, View convertView, ViewGroup parent) {

【Android疑难杂症】GridView动态设置Item的宽高导致第一个Item不响应或显示不正常的问题

前言 这个问题在之前做一个盒子项目时遇到过,最近又遇到了,使用GridView遇到的非常奇葩的问题,这里记录分享一下. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 一.问题 1.1 先看问题代码: @Override    public View getView(int position, View convertView, ViewGroup parent) {     

Android GridView中Button点击事件onItemClick不能响应

今天在捣鼓一个类似于百度贴吧的东西.布局:上面是个ActionBar标题栏,然后是一个GridView布局,在Java代码中动态加载关注的贴吧,一切就绪中,很愉快的弄好了! 现在需要点击选项进入某个贴吧,那么问题来了—— GridView中Button点击事件onItemClick不能响应. 所以,主要的猫腻还是在com.android.internal.R.attr.buttonStyle这个里面,查看这个xml文件,Button设置多了两个属性如下:<item name="androi

解决“listView点击一个Item,另外几个Item也跟着改变”的问题

如图所示: 我点击Item,右边的checkBox就会相应的变化,但是当我第一次做的时候,点击第一个Item,右边的checkBox变为绿色,但是当我listView往下拉的时候,发现下面也有是绿色的checkBox,很显然我是没有点击下面的.那么这个问题应该怎么解决呢,下面是我解决的方法: 首先是Item的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=