pull/605/head
jhengazuji 4 months ago
parent 79349100b8
commit e2a34d8d47
  1. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomVerticalGridView.java
  2. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java
  3. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java

@ -7,6 +7,7 @@ import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import androidx.leanback.widget.OnChildViewHolderSelectedListener; import androidx.leanback.widget.OnChildViewHolderSelectedListener;
import androidx.leanback.widget.VerticalGridView; import androidx.leanback.widget.VerticalGridView;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -15,6 +16,8 @@ import com.fongmi.android.tv.R;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
public class CustomVerticalGridView extends VerticalGridView { public class CustomVerticalGridView extends VerticalGridView {
@ -48,8 +51,8 @@ public class CustomVerticalGridView extends VerticalGridView {
}); });
} }
public void setHeader(View... views) { public void setHeader(FragmentActivity activity, int... layoutIds) {
this.views = Arrays.asList(views); if (activity != null) views = Arrays.stream(layoutIds).mapToObj(id -> (View) activity.findViewById(id)).filter(Objects::nonNull).collect(Collectors.toList());
} }
public void setMoveTop(boolean moveTop) { public void setMoveTop(boolean moveTop) {

@ -77,8 +77,8 @@ public class CollectFragment extends BaseFragment implements CustomScroller.Call
CustomSelector selector = new CustomSelector(); CustomSelector selector = new CustomSelector();
selector.addPresenter(ListRow.class, new CustomRowPresenter(16), VodPresenter.class); selector.addPresenter(ListRow.class, new CustomRowPresenter(16), VodPresenter.class);
mBinding.recycler.setAdapter(new ItemBridgeAdapter(mAdapter = new ArrayObjectAdapter(selector))); 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.addOnScrollListener(mScroller = new CustomScroller(this));
mBinding.recycler.setHeader(getActivity(), R.id.result, R.id.recycler);
mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16)); mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16));
} }
@ -105,7 +105,7 @@ public class CollectFragment extends BaseFragment implements CustomScroller.Call
} }
public void addVideo(List<Vod> items) { public void addVideo(List<Vod> items) {
if (checkLastSize(items) || getActivity() == null || requireActivity().isFinishing()) return; if (checkLastSize(items) || getActivity() == null || getActivity().isFinishing()) return;
List<ListRow> rows = new ArrayList<>(); List<ListRow> rows = new ArrayList<>();
for (List<Vod> part : Lists.partition(items, Product.getColumn())) { for (List<Vod> part : Lists.partition(items, Product.getColumn())) {
mLast = new ArrayObjectAdapter(new VodPresenter(this)); mLast = new ArrayObjectAdapter(new VodPresenter(this));

@ -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(16), VodPresenter.class);
selector.addPresenter(ListRow.class, new CustomRowPresenter(8, FocusHighlight.ZOOM_FACTOR_NONE, HorizontalGridView.FOCUS_SCROLL_ALIGNED), FilterPresenter.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.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)); mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16));
} }

Loading…
Cancel
Save