看了很多網上其他大神的,感覺還是在listview的adapter中的getCount中下手比較好點
畢竟計算高度等等,那會讓輔助的布局會一團糟,例如下面的搜索歷史只顯示四條,布局中有橫向listview
有gridview
package com.tfot.hotel.yichengyiyu.Activity.zhou_activity.adapter; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.tfot.hotel.yichengyiyu.Activity.zhou_activity.data.RecordSQLiteOpenHelper; import com.tfot.hotel.yichengyiyu.R; import java.util.List; /** * Created by qpz on 2017-6-24. */ public class SouSuoListAdapter extends BaseAdapter{ private static final int MAX_ITEM_COUNT = 4; private Context context; private LayoutInflater layoutInflater; private List sousuo; private MyClickListener mListener; private SQLiteDatabase db; private RecordSQLiteOpenHelper helper; public SouSuoListAdapter(Context context,List sousuo, MyClickListener mListener){ this.context = context; this.layoutInflater=LayoutInflater.from(context); helper = new RecordSQLiteOpenHelper(context); this.sousuo = sousuo; this.mListener = mListener; } /** * 組件集合,對應xml中的控件 * @author Administrator */ public final class DanGe{ public TextView activity_sousuolishi_neirong_tv; public ImageView sousuo_shanchuyitiao_iv; } /** * 設置listview顯示的條數,為4條 * @return */ @Override public int getCount() { if (sousuo == null) return 0; return Math.min(MAX_ITEM_COUNT,sousuo.size()); } @Override public Object getItem(int position) { if(sousuo.get(position)!=null&&!sousuo.isEmpty()){ return sousuo.get(position); } return null; } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { DanGe danGe=null; if(convertView==null) { danGe=new DanGe(); //獲得組件,實例化組件 convertView =layoutInflater.inflate(R.layout.activity_sousuolishi, null); danGe.sousuo_shanchuyitiao_iv = (ImageView) convertView.findViewById(R.id.sousuo_shanchuyitiao_iv); danGe.activity_sousuolishi_neirong_tv = (TextView) convertView.findViewById(R.id.activity_sousuolishi_neirong_tv); convertView.setTag(danGe); }else{ danGe = (DanGe) convertView.getTag(); } danGe.activity_sousuolishi_neirong_tv.setText((String)sousuo.get(position)); danGe.sousuo_shanchuyitiao_iv.setOnClickListener(mListener); danGe.sousuo_shanchuyitiao_iv.setTag(position); return convertView; } /** * 用於回調的抽象類 */ public static abstract class MyClickListener implements View.OnClickListener { /** * 基類的onClick方法 */ @Override public void onClick(View v) { myShanChuOnClick((Integer) v.getTag(), v); } public abstract void myShanChuOnClick(int position, View v); } }