问题1:设置了adapter但是界面不显示问题
原因:可能缺少
recyclerView.setLayoutManager(new LinearLayoutManager(this));
要在初始化recyclerview的时候加上这一句
问题2:recycler只显示一行数据
原因是recyclerView每一行的布局设置了match, 需要改成wrap
问题3: adapter里有两个list,如下
MyAdapter myAdapter = new MyAdapter(list1,list2);
recyclerView.setAdapter(myAdapter);
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
if (list1 != null && list1.size() > 0) {
if ("1".equals(list1.get(position))) {
holder.img1.setImageResource(R.drawable.ic_downgrade_icon);
} else if ("0".equals(list1.get(position))) {
holder.img1.setImageResource(R.drawable.ic_same_version_icon);
}else if ("-1".equals(list1.get(position))) {
holder.img1.setImageResource(R.drawable.ic_upgrade_icon);
}
}
if (list2 != null && list2.size() > 0) {
if ("1".equals(list2.get(position))) {
holder.img2.setImageResource(R.drawable.ic_downgrade_icon);
} else if ("0".equals(list2.get(position))) {
holder.img2.setImageResource(R.drawable.ic_same_version_icon);
}else if ("-1".equals(list2.get(position))) {
holder.img2.setImageResource(R.drawable.ic_upgrade_icon);
}
}
}
如果list1为空 或者 null 那么不论第二个list是否有值都不会再绘制 。所以list1不能为null或者空。
我的解决办法是 :然后设置成不可见。
public MyAdapter(List<String> list1, List<String> list2) {
this.list1.addAll(list1);
this.list2 .addAll(list2);
if (this.list1.size() == 0 ){
this.list1.add("0");
this.list1.add("1");
this.list1.add("-1");
}
}
当然可以变成一个list。问题也没有了。