From 8a0f419f641c6b5e4ef60c7513f5c5d12895a00c Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 9 Mar 2023 23:14:36 +0800 Subject: [PATCH] [mobile] optimize fragment load --- .../android/tv/ui/base/BaseFragment.java | 22 +++++++++++++------ .../tv/ui/fragment/child/HomeFragment.java | 8 +++++-- .../tv/ui/fragment/child/TypeFragment.java | 8 +++++-- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseFragment.java index ce4be4e26..177f9452d 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseFragment.java @@ -22,32 +22,40 @@ public abstract class BaseFragment extends Fragment { return getBinding(inflater, container).getRoot(); } + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + initView(); + initEvent(); + } + protected void initView() { } protected void initEvent() { } - public boolean canBack() { - return true; + protected void initData() { } - private void resume() { + private void onVisible() { if (init) return; - initView(); - initEvent(); + initData(); init = true; } + public boolean canBack() { + return true; + } + @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); - if (isVisibleToUser) if (isResumed()) resume(); + if (isVisibleToUser) if (isResumed()) onVisible(); } @Override public void onResume() { super.onResume(); - if (getUserVisibleHint()) resume(); + if (getUserVisibleHint()) onVisible(); } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/HomeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/HomeFragment.java index 1d8ccf6a4..a8b70fefc 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/HomeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/HomeFragment.java @@ -54,10 +54,8 @@ public class HomeFragment extends BaseFragment implements VodAdapter.OnClickList @Override protected void initView() { - mBinding.progressLayout.showProgress(); setRecyclerView(); setViewModel(); - getVideo(); } @Override @@ -66,6 +64,12 @@ public class HomeFragment extends BaseFragment implements VodAdapter.OnClickList mBinding.scrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> getParent().toggleLink(scrollY - oldScrollY)); } + @Override + protected void initData() { + mBinding.progressLayout.showProgress(); + getVideo(); + } + private void setRecyclerView() { mBinding.history.setHasFixedSize(true); mBinding.history.getItemAnimator().setChangeDuration(0); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java index 193559945..e0bcbadca 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java @@ -67,10 +67,8 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac mTypeIds = new ArrayList<>(); mExtends = new HashMap<>(); mScroller = new CustomScroller(this); - mBinding.progressLayout.showProgress(); setRecyclerView(); setViewModel(); - getVideo(); } @Override @@ -85,6 +83,12 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac }); } + @Override + protected void initData() { + mBinding.progressLayout.showProgress(); + getVideo(); + } + private void setRecyclerView() { mBinding.recycler.setHasFixedSize(true); mBinding.recycler.setAdapter(mVodAdapter = new VodAdapter(this));