Browse Source

修复学生端约课页面ViewPager2高度可能不正确,导致下拉加载有问题

Pq 3 months ago
parent
commit
b9f3430595

+ 2 - 2
student/src/main/java/com/cooleshow/student/adapter/VIPCourseCourseListAdapter.java

@@ -34,8 +34,8 @@ public class VIPCourseCourseListAdapter extends BaseQuickAdapter<AppointCourseTe
         RatingBar rating_bar = holder.getView(R.id.rating_bar);
         try {
             String starGrade = bean.getStarGrade();
-            int i = Integer.parseInt(starGrade);
-            rating_bar.setRating(i);
+            double i = Double.parseDouble(starGrade);
+            rating_bar.setRating((float) i);
         } catch (Exception e) {
             e.printStackTrace();
             rating_bar.setRating(0);

+ 24 - 13
student/src/main/java/com/cooleshow/student/ui/course/AppointmentCourseActivity.java

@@ -12,6 +12,7 @@ import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.musicmerge.adapter.MyWorkPagerAdapter;
 import com.cooleshow.student.R;
 import com.cooleshow.student.adapter.MineCoursePagerAdapter;
 import com.cooleshow.student.bean.QuerySubjectBean;
@@ -27,6 +28,7 @@ import java.util.Arrays;
 import java.util.List;
 
 import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
 import androidx.viewpager2.widget.ViewPager2;
 
 
@@ -50,6 +52,12 @@ public class AppointmentCourseActivity extends BaseMVPActivity<ActivityAppointme
     private VideoCourseAppointListFragment mVideoCourseAppointListFragment;
 
     @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        QMUIStatusBarHelper.setStatusBarLightMode(this);
+    }
+
+    @Override
     protected void initView() {
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "约课");
         viewBinding.toolbarInclude.toolbar.setBackgroundColor(Color.TRANSPARENT);
@@ -57,11 +65,7 @@ public class AppointmentCourseActivity extends BaseMVPActivity<ActivityAppointme
         viewPager = viewBinding.viewPager;
     }
 
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        QMUIStatusBarHelper.setStatusBarLightMode(this);
-    }
+
 
     @Override
     protected ActivityAppointmentCourseBinding getLayoutView() {
@@ -76,21 +80,32 @@ public class AppointmentCourseActivity extends BaseMVPActivity<ActivityAppointme
     @Override
     public void initData() {
         super.initData();
-        int selectPosition = getIntent().getIntExtra(SELECT_POSITION, -1);
         titles = new ArrayList<String>(Arrays.asList("VIP定制课", "趣纠课", "直播课", "视频课"));
+        initListener();
+
         initTabLayoutAndViewPager();
+        preSelect();
         presenter.querySubjectItem();
+    }
+
+    private void preSelect() {
+        int selectPosition = getIntent().getIntExtra(SELECT_POSITION, -1);
         if (selectPosition != -1 && selectPosition < fragments.size()) {
-            viewPager.post(new Runnable() {
+            viewBinding.viewPager.post(new Runnable() {
                 @Override
                 public void run() {
-                    viewPager.setCurrentItem(selectPosition);
+                    viewBinding.viewPager.setCurrentItem(selectPosition);
                 }
             });
         }
     }
 
     private void initTabLayoutAndViewPager() {
+        TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(tabLayout,  viewBinding.viewPager, (tab, position) -> {
+            //这里需要根据position修改tab的样式和文字等
+            createTab(tab, titles.get(position));
+        });
+
         mVipCustomCourseListFragment = VIPCustomCourseListFragment.newInstance();
         mInterestCorrectionCourseListFragment = InterestCorrectionCourseListFragment.newInstance();
         mLiveCourseAppointListFragment = LiveCourseAppointListFragment.newInstance();
@@ -102,10 +117,6 @@ public class AppointmentCourseActivity extends BaseMVPActivity<ActivityAppointme
         MineCoursePagerAdapter mineCoursePageAdapter = new MineCoursePagerAdapter(this);
         mineCoursePageAdapter.setFragments(fragments);
         viewPager.setAdapter(mineCoursePageAdapter);
-        TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> {
-            //这里需要根据position修改tab的样式和文字等
-            createTab(tab, titles.get(position));
-        });
         viewPager.setOffscreenPageLimit(fragments.size());
         initListener();
         tabLayoutMediator.attach();
@@ -141,7 +152,7 @@ public class AppointmentCourseActivity extends BaseMVPActivity<ActivityAppointme
             }
         });
 
-        viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
+        viewBinding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
             @Override
             public void onPageSelected(int position) {
                 super.onPageSelected(position);

+ 3 - 2
student/src/main/java/com/cooleshow/student/ui/course/InterestCorrectionCourseListFragment.java

@@ -28,6 +28,7 @@ import com.cooleshow.student.presenter.course.VIPCustomCourseListPresenter;
 import com.cooleshow.usercenter.helper.UserHelper;
 import com.scwang.smart.refresh.footer.ClassicsFooter;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
+import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
 
 import java.util.ArrayList;
@@ -107,7 +108,7 @@ public class InterestCorrectionCourseListFragment extends BaseMVPFragment<FgInte
                 getData(false);
             }
         });
-        mViewBinding.refreshLayout.setOnLoadMoreListener(new com.scwang.smart.refresh.layout.listener.OnLoadMoreListener() {
+        mViewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
             @Override
             public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
                 //上拉加载
@@ -228,8 +229,8 @@ public class InterestCorrectionCourseListFragment extends BaseMVPFragment<FgInte
                 if (mAdapter != null) {
                     if (dataList.getRows() != null && dataList.getRows().size() > 0) {
                         mViewBinding.refreshLayout.finishLoadMore();
-                        checkHasNext(dataList.getRows().size());
                         mAdapter.addData(dataList.getRows());
+                        checkHasNext(dataList.getRows().size());
                     } else {
                         mViewBinding.refreshLayout.finishLoadMoreWithNoMoreData();
                     }

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

@@ -136,8 +136,8 @@ public class LiveCourseAppointListFragment extends BaseMVPFragment<FgLiveCourseA
                 if (mAdapter != null) {
                     if (dataList.getRows() != null && dataList.getRows().size() > 0) {
                         mViewBinding.refreshLayout.finishLoadMore();
-                        checkHasNext(dataList.getRows().size());
                         mAdapter.addData(dataList.getRows());
+                        checkHasNext(dataList.getRows().size());
                     } else {
                         mViewBinding.refreshLayout.finishLoadMoreWithNoMoreData();
                     }

+ 8 - 5
student/src/main/res/layout/activity_appointment_course.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -19,6 +19,8 @@
 
     <com.google.android.material.tabs.TabLayout
         android:id="@+id/tablayout"
+        android:layout_centerHorizontal="true"
+        android:layout_below="@+id/toolbar_include"
         android:layout_width="wrap_content"
         android:layout_height="@dimen/dp_44"
         android:scrollbars="none"
@@ -41,12 +43,13 @@
 
 
     <androidx.viewpager2.widget.ViewPager2
+        android:layout_below="@+id/tablayout"
         android:id="@+id/viewPager"
+        android:descendantFocusability="blocksDescendants"
         android:layout_width="match_parent"
-        android:layout_height="0dp"
+        android:layout_height="match_parent"
         android:overScrollMode="never"
         android:scrollbars="none"
         app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/tablayout" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>
+        app:layout_constraintTop_toBottomOf="@+id/toolbar_include" />
+</RelativeLayout>

+ 1 - 1
student/src/main/res/layout/fg_interest_correction_course_list_layout.xml

@@ -96,12 +96,12 @@
         android:id="@+id/refreshLayout"
         android:layout_width="match_parent"
         android:layout_height="0dp"
+        android:layout_marginTop="12dp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/sort_view"
         app:srlEnableLoadMore="true">
 
         <androidx.recyclerview.widget.RecyclerView
-            android:layout_marginTop="12dp"
             android:id="@+id/recyclerView_list"
             android:layout_marginEnd="14dp"
             android:layout_marginStart="14dp"