中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
ListContainer 在使用Provider时发现 通过构造方法传入的list 数据 = 赋值 是不能通过 notifyDataChanged() 更新数据的
//例如 documentBeanTitleList titleProvider = new CommonProvider<DocumentBean>(getContext(), ResourceTable.Layout_item_document_flider, documentBeanTitleList) { @Override protected void convert(ViewHolder viewHolder, DocumentBean documentBean, int i) { Text tvDeptName = viewHolder.getComponent(ResourceTable.Id_tv_deptname); DirectionalLayout directionalLayout = viewHolder.getComponent(ResourceTable.Id_ll_item); Image image = viewHolder.getComponent(ResourceTable.Id_iv_next); tvDeptName.setText(documentBean.getName()); if (i + 1 == documentBeanTitleList.size()) { image.setVisibility(Component.INVISIBLE); try { tvDeptName.setTextColor(new Color(getAbility().getResourceManager().getElement(ResourceTable.Color_black).getColor())); } catch (IOException e) { e.printStackTrace(); } catch (NotExistException e) { e.printStackTrace(); } catch (WrongTypeException e) { e.printStackTrace(); } } else { image.setVisibility(Component.VISIBLE); try { tvDeptName.setTextColor(new Color(getAbility().getResourceManager().getElement(ResourceTable.Color_blue).getColor())); } catch (IOException e) { e.printStackTrace(); } catch (NotExistException e) { e.printStackTrace(); } catch (WrongTypeException e) { e.printStackTrace(); } } } }); } }; listContainer.setItemProvider(titleProvider); documentBeanTitleList.add(documentBean); // 添加 删除 界面更新有效果 titleProvider.notifyDataChanged(); // = 赋值 的方式 界面更新无效果 List<DocumentBean> list =new ArryList<>(); list.add(new DocumentBean()); documentBeanTitleList = list ; titleProvider.notifyDataChanged(); // addAll 的方式有效果 List<DocumentBean> list =new ArryList<>(); list.add(new DocumentBean()); documentBeanTitleList.addAll(list) ; titleProvider.notifyDataChanged();
微信扫码分享
你这标题误导观众啊!不看内容的人还以为是鸿蒙的bug
安卓是可以通过 = 赋值 的 鸿蒙不行 只是为遇到此问题的人提供解决的思路 ,再说标题只能写那么长,我遇到这个问题 想搜索都搜索不到
CommonProvider的源码贴一下。我怎么觉得安卓应该也是一样的
你这标题误导观众啊!不看内容的人还以为是鸿蒙的bug
安卓是可以通过 = 赋值 的 鸿蒙不行 只是为遇到此问题的人提供解决的思路 ,再说标题只能写那么长,我遇到这个问题 想搜索都搜索不到
CommonProvider的源码贴一下。我怎么觉得安卓应该也是一样的