1.实现的adapter的优化
public class FruitAdapter extends ArrayAdapter {
//默认的构造方法
public FruitAdapter(@NonNull Context context, int resource, @NonNull Object[] objects) {
super(context, resource, objects);
}
@NonNull
@Override
/*
position :当前item的id
convertView:缓存
parent:所有的item所在的布局
*/
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
String ss = (String) getItem(position);//获得数据的实例
View view;
ViewHolder holder;
if (convertView == null){//反复利用布局
view = LayoutInflater.from(getContext()).inflate(R.layout.layout,null);//加载每个item的布局
holder = new ViewHolder();
holder.fruit_name = view.findViewById(R.id.fruit_name);//布局中的TextView实例
view.setTag(holder);
}else {
view = convertView;
holder = (ViewHolder) view.getTag();
}
holder.fruit_name.setText(ss);
return view;
}
class ViewHolder{
TextView fruit_name;
}
}
2.listView与ScrollView之间存在只显示一个item的问题:
这是需要自定义一个ListView,并重写一个方法才能正常显示:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//重新设置高度
heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
本文地址:https://blog.csdn.net/qq_45902401/article/details/110221251