zoukankan      html  css  js  c++  java
  • 关于Fragment的点击切换数据滞留问题

     场景再现:当我使用tabLayout + Fragment 切换不同的fragment时,出现了数据重复显示的问题;

     思考逻辑:

    - 每次切换fragment都会重新获取数据,但是list集合是全局的,多切换两次,list数据就会变多,所以需要加判断,当list集合的数据超过第一次获取下来list集合的数据的时候就clear,之后每次进入fragment的时候initView都会执行,所以也会请求数据,这时候我们添加一个boolean来判断;
    15:56:092020-04-16


    解决方案:

     if (!hidden) {
    if (isFirstHidden) {
    size = complaintList.size();
    isFirstHidden = false;
    }
    if (complaintList.size() > size) {
    complaintList.clear();
    }
    showRv();
    }
    

     

    - 这样写每次重新进去之后又不显示数据了
    1. 定义变量 private boolean hidden;
    2. this.hidden = hidden;
    3. 实现OnResume()方法重新获取数据;

    ``` @Override
    public void onHiddenChanged(boolean hidden) {
    super.onHiddenChanged(hidden);
    this.hidden = hidden;
    if (!hidden) {
    if (isFirstHidden) {
    size = complaintList.size();
    isFirstHidden = false;
    }
    if (complaintList.size() > size) {
    complaintList.clear();
    }
    showRv();
    }
    }
    
    @Override
    public void onResume() {
    super.onResume();
    if (!hidden) {
    showRv();
    }
    }
    

      

    大功告成;

  • 相关阅读:
    Golang学习开篇——Go语言优势
    Ubuntu —— 查看和开放端口
    mysql——sql语句
    python模块——xlwt
    字典容器类型使用之坑
    pandas——将sql查询结果,分几部分存入excel
    pandas 点击 excel 表格数据,跳转到 sheet2
    datetime——计算前一天的这个时间 坑
    报错总结
    nginx——部署前端
  • 原文地址:https://www.cnblogs.com/spider008/p/12713477.html
Copyright © 2011-2022 走看看