我是在实现这个界面的时候遇到了这个问题
是什么问题呢?
可以看到布局写好是这个样子的,而那些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的宽高喔!