日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ViewPager中Fragment的重复创建、复用问题

發布時間:2023/11/29 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ViewPager中Fragment的重复创建、复用问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ?在ViewPager中的Fragment的生命周期? 隨著頁面的切換 當前的展示頁相鄰的頁面生命周期一直在變化

?

? ?一開始 剛進入Activity時候,ViewPager默認初始化好前兩個Fragment(消息和任務)

消息 ->任務

05-09 14:47:39.593 31509-31509/tyh.com.tablayout E/TYH: 團隊onAttach 05-09 14:47:39.593 31509-31509/tyh.com.tablayout E/TYH: 團隊onCreate 05-09 14:47:39.593 31509-31509/tyh.com.tablayout E/TYH: 團隊onCreateView 05-09 14:47:39.603 31509-31509/tyh.com.tablayout E/TYH: 團隊onStart 05-09 14:47:39.603 31509-31509/tyh.com.tablayout E/TYH: 團隊onResume

任務 ->團隊

5-09 14:55:26.932 31509-31509/tyh.com.tablayout E/TYH: 消息onPause 05-09 14:55:26.932 31509-31509/tyh.com.tablayout E/TYH: 消息onStop 05-09 14:55:26.932 31509-31509/tyh.com.tablayout E/TYH: 消息onDestroyView 05-09 14:55:26.932 31509-31509/tyh.com.tablayout E/TYH: 部門onAttach 05-09 14:55:26.932 31509-31509/tyh.com.tablayout E/TYH: 部門onCreate 05-09 14:55:26.942 31509-31509/tyh.com.tablayout E/TYH: 部門onCreateView 05-09 14:55:26.942 31509-31509/tyh.com.tablayout E/TYH: 部門onStart 05-09 14:55:26.942 31509-31509/tyh.com.tablayout E/TYH: 部門onResume

團隊 ->部門

05-09 14:57:18.371 31509-31509/tyh.com.tablayout E/TYH: 任務onPause 05-09 14:57:18.371 31509-31509/tyh.com.tablayout E/TYH: 任務onStop 05-09 14:57:18.371 31509-31509/tyh.com.tablayout E/TYH: 任務onDestroyView

部門 ->團隊

05-09 15:00:50.918 31509-31509/tyh.com.tablayout E/TYH: 任務onCreateView 05-09 15:00:50.918 31509-31509/tyh.com.tablayout E/TYH: 任務onStart 05-09 15:00:50.918 31509-31509/tyh.com.tablayout E/TYH: 任務onResume

? ? 你會發現 當 Fragment完成onCreate之后再去切換的時候? 只會執行onCreateView和onDestroyView方法不會再去onCreate

那么如何避免重復的創建和銷毀呢? 解決方案如下:

方案一(不推薦):

mViewPager.setOffscreenPageLimit(4);

方案二(推薦):

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if(view==null){
view = inflater.inflate(R.layout.contentfragment,container,false);
tvContent = (TextView) view.findViewById(R.id.tv_content);
String string = getArguments().getString(KEY);
tvContent.setText(string);
tvContent.setTextColor(Color.BLUE);
tvContent.setTextSize(30);
}
return view;
} @Override
public void onDestroyView() {
super.onDestroyView();
if(view!=null){
view.getParent().remove(view);
}
}

? ? 如此當重新創建Fragment的時候就會復用之前創建好的View不會重復創建

?

轉載于:https://www.cnblogs.com/bimingcong/p/10276450.html

總結

以上是生活随笔為你收集整理的ViewPager中Fragment的重复创建、复用问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。