diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomVerticalGridView.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomVerticalGridView.java index cbdee5fd7..ad9f6650f 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomVerticalGridView.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomVerticalGridView.java @@ -7,6 +7,7 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.fragment.app.FragmentActivity; import androidx.leanback.widget.OnChildViewHolderSelectedListener; import androidx.leanback.widget.VerticalGridView; import androidx.recyclerview.widget.RecyclerView; @@ -15,6 +16,8 @@ import com.fongmi.android.tv.R; import java.util.Arrays; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; public class CustomVerticalGridView extends VerticalGridView { @@ -48,8 +51,8 @@ public class CustomVerticalGridView extends VerticalGridView { }); } - public void setHeader(View... views) { - this.views = Arrays.asList(views); + public void setHeader(FragmentActivity activity, int... layoutIds) { + if (activity != null) views = Arrays.stream(layoutIds).mapToObj(id -> (View) activity.findViewById(id)).filter(Objects::nonNull).collect(Collectors.toList()); } public void setMoveTop(boolean moveTop) { diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java index 04a2675a2..2d976e82c 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java @@ -77,8 +77,8 @@ public class CollectFragment extends BaseFragment implements CustomScroller.Call CustomSelector selector = new CustomSelector(); selector.addPresenter(ListRow.class, new CustomRowPresenter(16), VodPresenter.class); mBinding.recycler.setAdapter(new ItemBridgeAdapter(mAdapter = new ArrayObjectAdapter(selector))); - mBinding.recycler.setHeader(requireActivity().findViewById(R.id.result), requireActivity().findViewById(R.id.recycler)); mBinding.recycler.addOnScrollListener(mScroller = new CustomScroller(this)); + mBinding.recycler.setHeader(getActivity(), R.id.result, R.id.recycler); mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16)); } @@ -105,7 +105,7 @@ public class CollectFragment extends BaseFragment implements CustomScroller.Call } public void addVideo(List items) { - if (checkLastSize(items) || getActivity() == null || requireActivity().isFinishing()) return; + if (checkLastSize(items) || getActivity() == null || getActivity().isFinishing()) return; List rows = new ArrayList<>(); for (List part : Lists.partition(items, Product.getColumn())) { mLast = new ArrayObjectAdapter(new VodPresenter(this)); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java index 130b40d45..a05ababaf 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java @@ -131,7 +131,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac selector.addPresenter(ListRow.class, new CustomRowPresenter(16), VodPresenter.class); selector.addPresenter(ListRow.class, new CustomRowPresenter(8, FocusHighlight.ZOOM_FACTOR_NONE, HorizontalGridView.FOCUS_SCROLL_ALIGNED), FilterPresenter.class); mBinding.recycler.setAdapter(new ItemBridgeAdapter(mAdapter = new ArrayObjectAdapter(selector))); - mBinding.recycler.setHeader(requireActivity().findViewById(R.id.recycler)); + mBinding.recycler.setHeader(getActivity(), R.id.recycler); mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16)); }