ListView的Adapter使用
程序员文章站
2022-03-23 22:55:16
实现的adapter的优化public class FruitAdapter extends ArrayAdapter {//默认的构造方法 public FruitAdapter(@NonNull Context context, int resource, @NonNull Object[] objects) { super(context, resource, objects); } @NonNull @Override /* p...
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
上一篇: Spring和数据库编程
推荐阅读
-
如何使用vuejs实现更好的Form validation?
-
ThinkPHP5框架中使用JWT的方法示例
-
Vue2.0使用过程常见的一些问题总结学习
-
从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之七使用JWT生成Token(个人见解)
-
Kotlin 扩展函数和扩展属性的使用方法
-
C# 可空类型的具体使用
-
Apache shiro的简单介绍与使用教程(与spring整合使用)
-
NetworkStream的使用(TcpClient,TcpListener)
-
详解Angular中$cacheFactory缓存的使用
-
使用Pyrex来扩展和加速Python程序的教程