zoukankan      html  css  js  c++  java
  • 解决Fragment每次进入都加载的问题

    1、首先了解一下fragment的生命周期
    onCreate是指创建该fragment类似于Activity.onCreate,你可以在其中初始化除了view之外的东西,onCreateView是创建该fragment对应的视图,你必须在这里创建自己的视图并返回给调用者,例如
    return inflater.inflate(R.layout.fragment_settings, container, false);。
    super.onCreateView有没有调用都无所谓,因为super.onCreateView是直接返回null的
       由上可见fragment的view在从其他fragment切回来后都会被重新创建视图onCreateView,所以当我们在fragment含有比较复杂且加载数据量较耗时的时候便会在初始化view的时候变得很卡。
      所以我便将复杂的view单独拎出来放在oncreate内,只在父activity创建后初始化一次,然后将这个复杂的view再添加到fragment中。
    下面是我的代码:
      private View vv;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            goodAdapter = new AdapterCursorGoodList(getActivity());
            getActivity().getSupportLoaderManager().initLoader(-1, null, praiseLoaderCallbacks);
            vv = LayoutInflater.from(getActivity()).inflate(R.layout.infos_content_item, null);
            goodLayout = (InfosListLayout) vv.findViewById(R.id.good_layout);// 解决了每次fragment onCreateView,此处只被new一次
        }
     
      private LinearLayout ll_container;// 这个容器是装goodLayout
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View v = inflater.inflate(R.layout.infos_content, container, false);
                scrollView = (ScrollView) v.findViewById(R.id.newsScrollview);
            newsLoadMore = (TextView) v.findViewById(R.id.newsLoadMore);
            ll_container = (LinearLayout) v.findViewById(R.id.ll_container);
            ll_container.addView(vv);
    。。。。。。。。
    这个解决方案还不够好,因为第一次加载还是会卡,希望大家有更好的解决办法,欢迎指导
  • 相关阅读:
    关于 php json float 出现很多位的问题
    做 Excel 的 XML schema.xsd
    笔记:Python 默认参数必须指向不变对象
    Bartender 使用 Excel xlsx 数据库时出现 0x800A0E7A
    Javascript 中 的 for ... in 和 for ... of 差别
    关于跨域资料收集 (2019-01-11)
    ThinkPHP3 和 ThinkPHP5 不是一个团队做的
    记录一下:给电推剪改锂电池
    为你的Web程序加个启动画面
    前端不为人知的一面--前端冷知识集锦 前端已经被玩儿坏了!像console.log()可以向控制台输出图片
  • 原文地址:https://www.cnblogs.com/android-blogs/p/4838315.html
Copyright © 2011-2022 走看看