设置ListView和GridView的item高度(第一个Item点击没有反应问题解决)

设置ListView和GridView的item高度

在适配器中添加如下代码可以完成item高度的修改。

AbsListView.LayoutParams param = new AbsListView.LayoutParams(
        ViewGroup.LayoutParams.FILL_PARENT,70);
    view.setLayoutParams(param);

注意设置完成后有的会出现第一个Item点击没有反应

该部分参考自:https://www.jianshu.com/p/0d65da8366c2

对GridView进行设置时,若每次进入控件时都new一个新的LayoutParams对象,会导致GridView的第一个Item点击没有反应。如下所示:

 ViewHolder viewHolder = null;
    if (view == null) {
        view = LayoutInflater.from(mContext).inflate(R.layout.item_grid_binguo, null);
        viewHolder = new ViewHolder(view);
        view.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolde r) view.getTag();
    }
    viewHolder.mTvBinguoName.setText(mBinGuo.getList().get(item).getPokemon_id_list().get(i).getPokemon_name());
    viewHolder.mLvBinGuoItem.setOnClickListener(mMyClick);
    viewHolder.mLvBinGuoItem.setTag(Integer.valueOf(mBinGuo.getList().get(item).getPokemon_id_list().get(i).getPokemon_id()));
    if(i==0){
        Log.d("BinGuoInfoAdapter", mBinGuo.getList().get(item).getPokemon_id_list().get(i).getPokemon_id());
    }
    /*************************问题代码***************************/
    AbsListView.LayoutParams param = new AbsListView.LayoutParams(
            ViewGroup.LayoutParams.FILL_PARENT,
            200);
    view.setLayoutParams(param);
    /************************************************************/
    return view;

最后把问题代码放到了第一次加载的地方,在第一次加载时new一下,完美的解决了问题

ViewHolder viewHolder = null;
    if (view == null) {
        view = LayoutInflater.from(mContext).inflate(R.layout.item_grid_binguo, null);
        /**************************解决方法************************/
        AbsListView.LayoutParams param = new AbsListView.LayoutParams(
                ViewGroup.LayoutParams.FILL_PARENT,
                200);
        view.setLayoutParams(param);
        /*********************************************************/
        viewHolder = new ViewHolder(view);            view.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) view.getTag();
    }
    viewHolder.mTvBinguoName.setText(mBinGuo.getList().get(item).getPokemon_id_list().get(i).getPokemon_name());
    viewHolder.mLvBinGuoItem.setOnClickListener(mMyClick);
    viewHolder.mLvBinGuoItem.setTag(Integer.valueOf(mBinGuo.getList().get(item).getPokemon_id_list().get(i).getPokemon_id()));
    return view;


 

猜你喜欢

转载自blog.csdn.net/m0_37203554/article/details/81186151
今日推荐