Android GridView中Item宽高不正常的问题解决

来源:互联网 发布:淘宝小二分工 编辑:程序博客网 时间:2024/04/29 07:04

我是在实现这个界面的时候遇到了这个问题
这里写图片描述
是什么问题呢?
这里写图片描述
可以看到布局写好是这个样子的,而那些Item的大小有些太小了
也许你说放图进去就好了
但是放一些小尺寸的图会显示的非常怪异

一开始想 应该是item_xxx.xml里头参数没写好吧?
于是去改Item布局的参数 ,试过指定px,fill parent都没有什么卵用。

那最后是怎么解决的呢?
我在搜了好久之后发现一句神评论:“关键在于adapter!”
一开始还不信,但我尝试在adapter代码里指定其宽高之后,就不得不承认这个事实了。

下面放代码:

    @Override    public View getView(int position, View convertView, ViewGroup parent) {        // TODO Auto-generated method stub        ViewHolder holder = null;        if(convertView == null){            convertView = inflater.inflate(R.layout.item_grid_questionset, null);            //指定Item的宽高            DisplayMetrics dm = new DisplayMetrics();            ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(dm);            int height = dm.heightPixels ;//高度            convertView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,height/5));            holder = new ViewHolder();            //findViewById......            holder.imageView = (ImageView) convertView.findViewById(R.id.img_questionset_item_grid);            holder.textView = (TextView) convertView.findViewById(R.id.tv_questionset_item_grid);            convertView.setTag(holder);        }else{            holder = (ViewHolder)convertView.getTag();        }        final QuestionSetInfo item = itemList.get(position);        //界面刷新与设置监听器......        fb.display(holder.imageView, item.getCoverMapUrl(), bitmap, bitmap);        holder.imageView.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                Intent intent = new Intent(context,ExamEnterActivity.class);                intent.putExtra("bean", item);                context.startActivity(intent);            }        });        holder.textView.setText(item.getQuestionSetName());        return convertView;    }

主要是重新设置item布局的宽高参数。也可以用于动态修改Grid/ListView里面每个Item的宽高喔!

0 0
原创粉丝点击