Android RecyclerView 的适配器不走onCreateViewHolder的方法

  遇到这种情况,先看LayoutManager设置了没

 binding.refreshView.setLayoutManager(new LinearLayoutManager(context));

  还不好用的话,再看适配器的数据源是否改变了,这个回调只有在数据改变之后刷新的时候,才会调用

发布了159 篇原创文章 · 获赞 29 · 访问量 19万+
展开阅读全文

求教AndroidRecyclerView的ViewHolder的一些问题

07-18

初学Android,看了一些代码,基本上适配器的代码都是这么写的 ``` public class NewAdapter extends RecyclerView.Adapter <NewAdapter.ViewHolder> { private List<String> data; static class ViewHolder extends RecyclerView.ViewHolder { Button number; Button name; public ViewHolder(View view) { super(view); number=view.findViewById(R.id.text1); name=view.findViewById(R.id.text2); } } public NewAdapter(List<String> data) { this.data=data; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler,parent,false); ViewHolder holder=new ViewHolder(view); return holder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { String name=data.get(position); holder.number.setText(String.valueOf(position)); holder.name.setText(name); } @Override public int getItemCount() { return data.size(); } } ``` 代码中有个ViewHolder,都说ViewHolder可以加载Item的布局可以节省findViewByID操作。但是每次当滚动需要显示新的Item都会调用onCreateViewHolder,而每次调用都会创建一个新View让ViewHolder加载,这样不就没有节省吗? 还有就是不太明白onCreateViewHolder的返回值是用到onBindViewHolder上了么。 那样要滚动显示一个Item的步骤是不是先调用onCreateViewHolder,创建出一个ViewHolder,其中包含着要显示的Item中的的Button,TextView一类的实例。然后将这个ViewHolder作为参数调用onBindViewHolder,然后将Item中的Button,TextView置上数据?? 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览