瀏覽代碼

修改直播课列表的pad适配,分成2列

Pq 5 月之前
父節點
當前提交
c07e0c5030

+ 36 - 0
BaseLibrary/src/main/java/com/cooleshow/base/widgets/GridItemDecoration.java

@@ -0,0 +1,36 @@
+package com.cooleshow.base.widgets;
+
+import android.graphics.Rect;
+import android.view.View;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+/**
+ * Author by pq, Date on 2021/3/18 0018.
+ */
+public class GridItemDecoration extends RecyclerView.ItemDecoration {
+
+    private int top;
+    private int bottom;
+    private int spanCount;
+    private int center;
+
+    public GridItemDecoration(int spanCount, int top, int bottom, int center) {
+        this.top = top;
+        this.bottom = bottom;
+        this.spanCount = spanCount;
+        this.center = center;
+    }
+
+    @Override
+    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+        outRect.top = top;
+        outRect.bottom = bottom;
+        int childAdapterPosition = parent.getChildAdapterPosition(view);
+        if ((childAdapterPosition % spanCount) == 0) {
+            outRect.right = center;
+        } else {
+            outRect.left = center;
+        }
+    }
+}

+ 14 - 1
student/src/main/java/com/cooleshow/student/ui/course/LiveCourseAppointListFragment.java

@@ -14,9 +14,12 @@ import com.cooleshow.base.bean.SubjectListBean;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.LOG;
+import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.UiUtils;
+import com.cooleshow.base.utils.helper.QMUIDeviceHelper;
 import com.cooleshow.base.utils.helper.WebStartHelper;
 import com.cooleshow.base.widgets.EmptyViewLayout;
+import com.cooleshow.base.widgets.GridItemDecoration;
 import com.cooleshow.student.R;
 import com.cooleshow.student.adapter.LiveCourseAppointAdapter;
 import com.cooleshow.student.bean.AppointCourseTeacherListBean;
@@ -37,7 +40,9 @@ import java.util.ArrayList;
 import java.util.List;
 
 import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 /**
  * Author by pq, Date on 2024/11/13.
@@ -78,7 +83,15 @@ public class LiveCourseAppointListFragment extends BaseMVPFragment<FgLiveCourseA
         EmptyViewLayout emptyViewLayout = new EmptyViewLayout(getContext());
         emptyViewLayout.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无课程");
         mAdapter.setEmptyView(emptyViewLayout);
-        mViewBinding.recyclerViewList.setLayoutManager(new LinearLayoutManager(getContext()));
+        RecyclerView.LayoutManager layoutManager;
+        if(QMUIDeviceHelper.isTablet(getContext())){
+            layoutManager = new GridLayoutManager(getContext(),2);
+            GridItemDecoration itemDecoration =new GridItemDecoration(2,0,0, SizeUtils.dp2px(6));
+            mViewBinding.recyclerViewList.addItemDecoration(itemDecoration);
+        }else{
+            layoutManager =new LinearLayoutManager(getContext());
+        }
+        mViewBinding.recyclerViewList.setLayoutManager(layoutManager);
         mViewBinding.recyclerViewList.setAdapter(mAdapter);
         initListener();
         getData(false);

+ 14 - 1
student/src/main/java/com/cooleshow/student/ui/course/LiveCourseGroupFragment.java

@@ -16,9 +16,12 @@ import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.LOG;
 import com.cooleshow.base.utils.PopupUtil;
+import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.UiUtils;
+import com.cooleshow.base.utils.helper.QMUIDeviceHelper;
 import com.cooleshow.base.widgets.CourseGroupFilterView;
 import com.cooleshow.base.widgets.EmptyViewLayout;
+import com.cooleshow.base.widgets.GridItemDecoration;
 import com.cooleshow.chatmodule.utils.helper.ChatHelper;
 import com.cooleshow.student.R;
 import com.cooleshow.student.adapter.LiveCourseListAdapter;
@@ -37,7 +40,9 @@ import java.util.Arrays;
 import java.util.List;
 
 import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 /**
  * Author by pq, Date on 2022/4/25.
@@ -106,7 +111,15 @@ public class LiveCourseGroupFragment extends BaseMVPFragment<FragmentLiveCourseL
         mEmptyView.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无课程~");
         mAdapter.setEmptyView(mEmptyView);
 //        mAdapter.getLoadMoreModule().setEnableLoadMoreIfNotFullPage(false);
-        mViewBinding.recyclerViewList.setLayoutManager(new LinearLayoutManager(requireContext()));
+        RecyclerView.LayoutManager layoutManager;
+        if(QMUIDeviceHelper.isTablet(getContext())){
+            layoutManager = new GridLayoutManager(getContext(),2);
+            GridItemDecoration itemDecoration =new GridItemDecoration(2,0,0, SizeUtils.dp2px(6));
+            mViewBinding.recyclerViewList.addItemDecoration(itemDecoration);
+        }else{
+            layoutManager =new LinearLayoutManager(getContext());
+        }
+        mViewBinding.recyclerViewList.setLayoutManager(layoutManager);
         mViewBinding.recyclerViewList.setAdapter(mAdapter);
         buildDefaultCourseStatusFilterList();
         reBuildFilter(CourseConstants.COURSE_FILTER_ALL, null);

+ 14 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/course/LiveCourseGroupFragment.java

@@ -18,9 +18,12 @@ import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.LOG;
 import com.cooleshow.base.utils.PopupUtil;
+import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.UiUtils;
+import com.cooleshow.base.utils.helper.QMUIDeviceHelper;
 import com.cooleshow.base.widgets.CourseGroupFilterView;
 import com.cooleshow.base.widgets.EmptyViewLayout;
+import com.cooleshow.base.widgets.GridItemDecoration;
 import com.cooleshow.chatmodule.utils.helper.ChatHelper;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.LiveCourseListAdapter;
@@ -41,7 +44,9 @@ import java.util.Date;
 import java.util.List;
 
 import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 /**
  * Author by pq, Date on 2022/4/25.
@@ -110,7 +115,15 @@ public class LiveCourseGroupFragment extends BaseMVPFragment<FragmentLiveCourseL
         mEmptyView.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无课程~");
         mAdapter.setEmptyView(mEmptyView);
 //        mAdapter.getLoadMoreModule().setEnableLoadMoreIfNotFullPage(false);
-        mViewBinding.recyclerViewList.setLayoutManager(new LinearLayoutManager(requireContext()));
+        RecyclerView.LayoutManager layoutManager;
+        if(QMUIDeviceHelper.isTablet(getContext())){
+            layoutManager = new GridLayoutManager(getContext(),2);
+            GridItemDecoration itemDecoration =new GridItemDecoration(2,0,0, SizeUtils.dp2px(6));
+            mViewBinding.recyclerViewList.addItemDecoration(itemDecoration);
+        }else{
+            layoutManager =new LinearLayoutManager(getContext());
+        }
+        mViewBinding.recyclerViewList.setLayoutManager(layoutManager);
         mViewBinding.recyclerViewList.setAdapter(mAdapter);
         buildDefaultCourseStatusFilterList();
         reBuildFilter(CourseConstants.COURSE_FILTER_ALL, null);

+ 13 - 2
teacher/src/main/java/com/cooleshow/teacher/ui/course/MineLiveCourseFragment.java

@@ -8,6 +8,7 @@ import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
@@ -18,6 +19,9 @@ import com.chad.library.adapter.base.listener.OnLoadMoreListener;
 import com.cooleshow.base.common.WebConstants;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.utils.SizeUtils;
+import com.cooleshow.base.utils.helper.QMUIDeviceHelper;
+import com.cooleshow.base.widgets.GridItemDecoration;
 import com.cooleshow.teacher.constants.TeacherInfoConstants;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.teacher.R;
@@ -93,8 +97,15 @@ public class MineLiveCourseFragment extends BaseMVPFragment<FragmentMineLiveCour
     protected void initView(View rootView) {
         type = getArguments().getString("type");
         RecyclerView rvAddress = mViewBinding.recyclerView;
-        LinearLayoutManager manager = new LinearLayoutManager(getContext());
-        rvAddress.setLayoutManager(manager);
+        RecyclerView.LayoutManager layoutManager;
+        if(QMUIDeviceHelper.isTablet(getContext())){
+            layoutManager = new GridLayoutManager(getContext(),2);
+            GridItemDecoration itemDecoration =new GridItemDecoration(2,0,0, SizeUtils.dp2px(6));
+            mViewBinding.recyclerView.addItemDecoration(itemDecoration);
+        }else{
+            layoutManager =new LinearLayoutManager(getContext());
+        }
+        rvAddress.setLayoutManager(layoutManager);
         mineLiveCourseAdapter = new MineLiveCourseAdapter(type);
         LayoutInflater inflater = LayoutInflater.from(getContext());
         View emptyLayout = inflater.inflate(R.layout.empty_mine_live_course, null);

+ 13 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/homepage/LiveCoursePageFragment.java

@@ -8,7 +8,9 @@ import android.widget.FrameLayout;
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.chad.library.adapter.base.BaseQuickAdapter;
@@ -19,7 +21,9 @@ import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.TimeUtils;
+import com.cooleshow.base.utils.helper.QMUIDeviceHelper;
 import com.cooleshow.base.widgets.EmptyViewLayout;
+import com.cooleshow.base.widgets.GridItemDecoration;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.LiveCourseListAdapter;
 import com.cooleshow.teacher.adapter.MineLiveCourseListAdapter;
@@ -93,7 +97,15 @@ public class LiveCoursePageFragment extends BaseMVPFragment<FragmentLiveCoursePa
                 mAdapter.getLoadMoreModule().loadMoreEnd();
             }
         });
-        mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
+        RecyclerView.LayoutManager layoutManager;
+        if(QMUIDeviceHelper.isTablet(getContext())){
+            layoutManager = new GridLayoutManager(getContext(),2);
+            GridItemDecoration itemDecoration =new GridItemDecoration(2,0,0, SizeUtils.dp2px(6));
+            mViewBinding.recyclerView.addItemDecoration(itemDecoration);
+        }else{
+            layoutManager =new LinearLayoutManager(getContext());
+        }
+        mViewBinding.recyclerView.setLayoutManager(layoutManager);
         mViewBinding.recyclerView.setAdapter(mAdapter);
         mAdapter.setOnItemClickListener((adapter, view, position) -> {
             MineLiveCourseListBean.RowsBean item = mAdapter.getData().get(position);