Android tabLayout+viewPager+fragment處理懶載入
本篇文章主要解決,在我們切換tabLayout中的fragment時,防止介面被多次呼叫,接下來,直接貼碼。。。本篇完美解決了這個問題,每次進入介面才會被呼叫,也就是隻呼叫了一次
1.fragment中初始化一個變數
private boolean firstLoad = false;
2.在fragment的onCreateView中做處理
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.xxx,null);
firstLoad = true;//檢視建立完成,將變數置為true
if (getUserVisibleHint()) {//判斷Fragment是否可見
//初始化資料
initDatas();
firstLoad = false;//將變數置為false
}
return view;
}
3.判斷setUserVisibleHint()是否是第一次進入介面,當退出當前頁面時銷燬
@Override
public void onDestroyView() {
super.onDestroyView();
firstLoad = false;//檢視銷燬將變數置為false
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (firstLoad && isVisibleToUser) {//檢視變為可見並且是第一次載入
//初始化資料
initDatas();
firstLoad = false;
}
}
4.初始化資料,做資料處理
//初始化資料
private void initDatas() {
}
最後完整的程式碼,下貼:
public class LoadFragment extends Fragment{
private boolean firstLoad = false;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.xxx,null);
firstLoad = true;//檢視建立完成,將變數置為true
if (getUserVisibleHint()) {//判斷Fragment是否可見
//初始化資料
initDatas();
firstLoad = false;//將變數置為false
}
return view;
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
firstLoad = false;//檢視銷燬將變數置為false
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (firstLoad && isVisibleToUser) {//檢視變為可見並且是第一次載入
//初始化資料
initDatas();
firstLoad = false;
}
}
//初始化資料
private void initDatas() {
}
相關文章
- tablayout+viewpager+fragment懶載入TabLayoutViewpagerFragment
- TabLayout+ViewPager+fragment實現懶載入TabLayoutViewpagerFragment
- TabLayout+ViewPager+Fragment懶載入實現TabLayoutViewpagerFragment
- Android開發丶使用懶載入修復tablayout+viewpager+fragment的預載入AndroidTabLayoutViewpagerFragment
- TabLayout+ViewPager+Fragment實現懶載入完全解決方案TabLayoutViewpagerFragment
- Tablayout+Viewpager+Fragment組合使用以及懶載入機制TabLayoutViewpagerFragment
- Android優化--Fragment懶載入Android優化Fragment
- 懶載入
- 懶載入和預載入
- iOS: 懶載入iOS
- Android 在 ViewPager 中使用 Fragment 的懶載入AndroidViewpagerFragment
- 【譯】懶載入元件元件
- 圖片懶載入
- Vue元件懶載入Vue元件
- Ribbon - 懶載入
- vue路由懶載入Vue路由
- Vue 的懶載入Vue
- Swift中懶載入Swift
- hibernate懶載入
- spring 懶載入Spring
- 什麼是hibernate懶載入?什麼時候用懶載入?為什麼要用懶載入?(轉)
- Vue 路由按需載入(路由懶載入)Vue路由
- 圖片預載入和懶載入
- 前端效能優化 --- 懶載入&預載入前端優化
- 單張圖片懶載入
- 圖片懶載入(IntersectionObserver)Server
- vue(18)路由懶載入Vue路由
- 關於懶載入原理
- 懶載入之intersection observerServer
- 圖片懶載入原理
- Fragment 懶載入實踐Fragment
- 談談IntersectionObserver懶載入Server
- Hibernate 之 懶載入
- TabLayout+ViewPager 懶載入TabLayoutViewpager
- 不要濫用懶載入
- 手把手實現圖片懶載入+封裝vue懶載入元件封裝Vue元件
- android viewpager使用Fragment懶載入,滑到當前fragment才進行資料載入AndroidViewpagerFragment
- 1道面試題---懶載入和預載入面試題