From 245df92d58f3833523e236e69e19ec5ffb00e203 Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 13 Feb 2023 15:50:08 +0800 Subject: [PATCH] [mobile] support orientation change --- .../fongmi/android/tv/ui/activity/BaseFragment.java | 5 +++++ .../android/tv/ui/fragment/child/SiteFragment.java | 12 ++++++------ .../android/tv/ui/fragment/child/TypeFragment.java | 6 +++--- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseFragment.java b/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseFragment.java index 1d4e3faa5..59ff3eed1 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseFragment.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/activity/BaseFragment.java @@ -1,5 +1,6 @@ package com.fongmi.android.tv.ui.activity; +import android.content.res.Configuration; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -20,6 +21,10 @@ public abstract class BaseFragment extends Fragment { protected abstract ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container); + protected int getSpanCount() { + return getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT ? 3 : 6; + } + @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java index cd5f9ed06..b1f74d54b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java @@ -47,10 +47,10 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList private void setRecyclerView() { mBinding.history.setHasFixedSize(true); mBinding.history.getItemAnimator().setChangeDuration(0); - mBinding.history.setLayoutManager(mHistoryManager = new GridLayoutManager(getContext(), 3)); + mBinding.history.setLayoutManager(mHistoryManager = new GridLayoutManager(getContext(), getSpanCount())); mBinding.history.setAdapter(mHistoryAdapter = new HistoryAdapter(this)); mBinding.recommend.setHasFixedSize(true); - mBinding.recommend.setLayoutManager(mRecommendManager = new GridLayoutManager(getContext(), 3)); + mBinding.recommend.setLayoutManager(mRecommendManager = new GridLayoutManager(getContext(), getSpanCount())); mBinding.recommend.setAdapter(mVodAdapter = new VodAdapter(this)); } @@ -118,11 +118,11 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { - mHistoryManager.setSpanCount(3); - mRecommendManager.setSpanCount(3); + mHistoryManager.setSpanCount(getSpanCount()); + mRecommendManager.setSpanCount(getSpanCount()); } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { - mHistoryManager.setSpanCount(6); - mRecommendManager.setSpanCount(6); + mHistoryManager.setSpanCount(getSpanCount()); + mRecommendManager.setSpanCount(getSpanCount()); } } } 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 918b0b9c4..280009750 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 @@ -94,7 +94,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac //mBinding.filter.setAdapter(mFilterAdapter = new FilterAdapter(this)); mBinding.recycler.setHasFixedSize(true); mBinding.recycler.setAdapter(mVodAdapter = new VodAdapter(this)); - mBinding.recycler.setLayoutManager(mGridLayoutManager = new GridLayoutManager(getContext(), 3)); + mBinding.recycler.setLayoutManager(mGridLayoutManager = new GridLayoutManager(getContext(), getSpanCount())); } private void setViewModel() { @@ -181,9 +181,9 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { - mGridLayoutManager.setSpanCount(3); + mGridLayoutManager.setSpanCount(getSpanCount()); } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { - mGridLayoutManager.setSpanCount(6); + mGridLayoutManager.setSpanCount(getSpanCount()); } } }