Selaa lähdekoodia

修改学生端课后作业样式

Pq 6 kuukautta sitten
vanhempi
commit
ca6712bf41

+ 22 - 28
student/src/main/java/com/cooleshow/student/adapter/HomeWorkPagerAdapter.java

@@ -1,11 +1,13 @@
 package com.cooleshow.student.adapter;
 
-import android.view.ViewGroup;
-
+import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentPagerAdapter;
+import androidx.viewpager2.adapter.FragmentStateAdapter;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -14,45 +16,37 @@ import java.util.List;
  * @author Ryan
  * 类说明:
  */
-public class HomeWorkPagerAdapter extends FragmentPagerAdapter {
-
-    private List<String> titles;
-    public FragmentManager fm;
-    private List<Fragment> fragments;
+public class HomeWorkPagerAdapter extends FragmentStateAdapter {
+    private ArrayList<Fragment> mFragments;
 
-    public HomeWorkPagerAdapter(FragmentManager fm, List<Fragment> fragments, List<String> titles) {
-        super(fm);
-        this.fm=fm;
-        this.titles = titles;
-        this.fragments = fragments;
+    public void setFragments(ArrayList<Fragment> fragments) {
+        this.mFragments = fragments;
     }
 
-    @Override
-    public Fragment getItem(int position) {
-        return fragments != null && fragments.size() > position ? fragments.get(position) : null;
+    public HomeWorkPagerAdapter(@NonNull FragmentActivity fragmentActivity) {
+        super(fragmentActivity);
     }
 
+    @NonNull
     @Override
-    public int getCount() {
-        return fragments == null ? 0 : fragments.size();
+    public Fragment createFragment(int position) {
+        Fragment fragment = mFragments.get(position);
+        return fragment;
     }
 
     @Override
-    public CharSequence getPageTitle(int position) {
-        return titles != null && titles.size() > position ? titles.get(position) : "";
+    public int getItemCount() {
+        return mFragments != null ? mFragments.size() : 0;
     }
+
     @Override
-    public Fragment instantiateItem(ViewGroup container, int position) {
-        Fragment fragment = (Fragment) super.instantiateItem(container,
-                position);
-        fm.beginTransaction().show(fragment).commit();
-        return fragment;
+    public long getItemId(int position) {
+        Fragment fragment = mFragments.get(position);
+        return fragment != null ? fragment.hashCode() : super.getItemId(position);
     }
 
     @Override
-    public void destroyItem(ViewGroup container, int position, Object object) {
-        // super.destroyItem(container, position, object);
-        Fragment fragment = fragments.get(position);
-        fm.beginTransaction().hide(fragment).commit();
+    public boolean containsItem(long itemId) {
+        return super.containsItem(itemId);
     }
 }

+ 31 - 52
student/src/main/java/com/cooleshow/student/adapter/HomeworkAdapter.java

@@ -29,7 +29,7 @@ import java.util.List;
  * @author Ryan
  * 类说明:
  */
-public class HomeworkAdapter extends BaseQuickAdapter<HomeworkListBean.RowsBean, BaseViewHolder> implements LoadMoreModule {
+public class HomeworkAdapter extends BaseQuickAdapter<HomeworkListBean.RowsBean, BaseViewHolder> {
 
     public HomeworkAdapter() {
         super(R.layout.layout_item_homework);
@@ -39,62 +39,45 @@ public class HomeworkAdapter extends BaseQuickAdapter<HomeworkListBean.RowsBean,
 
     @Override
     protected void convert(BaseViewHolder helper, HomeworkListBean.RowsBean item) {
-        TextView tv_date = helper.getView(R.id.tv_date);
+        TextView tv_time = helper.getView(R.id.tv_time);
         TextView tv_state = helper.getView(R.id.tv_state);
-        TextView tv_join_state = helper.getView(R.id.tv_join_state);
-        TextView tv_submit = helper.getView(R.id.tv_submit);
+//        TextView tv_submit = helper.getView(R.id.tv_submit);
+
+        ImageView im_header = helper.getView(R.id.iv_avatar);
+
+        helper.setText(R.id.tv_title,item.courseGroupName);
 
-        ImageView im_header = helper.getView(R.id.im_header);
         TextView tv_name = helper.getView(R.id.tv_name);
-        RecyclerView rv_mark = helper.getView(R.id.rv_mark);
+        tv_name.setText(item.teacherName);
         if (TextUtils.equals(item.type, CourseConstants.PIANO_ROOM_COURSE)) {
             //琴房课
             im_header.setImageResource(R.drawable.icon_piano_room_course);
-            tv_name.setText(item.courseGroupName);
         } else {
             //陪练课
             GlideUtils.INSTANCE.loadImage(getContext(), item.teacherAvatar, im_header, R.drawable.icon_teacher_default_head);
-            tv_name.setText(item.teacherName);
         }
 
-        if (!TextUtils.isEmpty(item.subjectName)) {
-            rv_mark.setVisibility(View.VISIBLE);
-            List<String> markList = new ArrayList<>();
-            if (item.subjectName.contains(",")) {
-                String[] split = item.subjectName.split(",");
-                for (String s : split) {
-                    markList.add(s);
-                }
-            } else {
-                markList.add(item.subjectName);
-            }
-            LinearLayoutManager manager = new LinearLayoutManager(getContext());
-            manager.setOrientation(LinearLayoutManager.HORIZONTAL);
-            rv_mark.setLayoutManager(manager);
-            ItemMarkAdapter itemMarkAdapter = new ItemMarkAdapter(markList);
-            rv_mark.setAdapter(itemMarkAdapter);
-        } else {
-            rv_mark.setVisibility(View.GONE);
-        }
-        tv_date.setText(UiUtils.getCourseTimeString(item.startTime, item.endTime));
-        if (item.absenteeism == 0) {
-            //到课
-            tv_join_state.setText("到课");
-            tv_join_state.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_999999));
-        } else {
-            //旷课
-            tv_join_state.setText("旷课");
-            tv_join_state.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_ff4e19));
-        }
+        helper.setText(R.id.tv_course_name, item.getSubjectName());
 
-        if (TextUtils.equals(item.homeworkStatus, HomeWorkConstants.COURSE_HOMEWORK_UN_COMMIT)) {
-            tv_submit.setText("去提交");
-            tv_submit.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_2dc7aa));
-            tv_submit.setBackgroundResource(R.drawable.bg_2dc7aa_border);
-            tv_submit.setVisibility(View.VISIBLE);
-        } else {
-            tv_submit.setVisibility(View.GONE);
-        }
+        tv_time.setText(UiUtils.getCourseTimeString(item.startTime, item.endTime));
+//        if (item.absenteeism == 0) {
+//            //到课
+//            tv_join_state.setText("到课");
+//            tv_join_state.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_999999));
+//        } else {
+//            //旷课
+//            tv_join_state.setText("旷课");
+//            tv_join_state.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_ff4e19));
+//        }
+
+//        if (TextUtils.equals(item.homeworkStatus, HomeWorkConstants.COURSE_HOMEWORK_UN_COMMIT)) {
+//            tv_submit.setText("去提交");
+//            tv_submit.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_2dc7aa));
+//            tv_submit.setBackgroundResource(R.drawable.bg_2dc7aa_border);
+//            tv_submit.setVisibility(View.VISIBLE);
+//        } else {
+//            tv_submit.setVisibility(View.GONE);
+//        }
 
         if (TextUtils.equals(item.homeworkStatus, HomeWorkConstants.COURSE_HOMEWORK_NOTREVIEW)) {
             tv_state.setVisibility(View.VISIBLE);
@@ -105,14 +88,10 @@ public class HomeworkAdapter extends BaseQuickAdapter<HomeworkListBean.RowsBean,
             tv_state.setText("已点评");
             tv_state.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_999999));
         } else {
-            tv_state.setVisibility(View.GONE);
+            tv_state.setVisibility(View.VISIBLE);
+            tv_state.setText("未提交");
+            tv_state.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_ff802c));
         }
     }
 
-    @NonNull
-    @Override
-    public BaseLoadMoreModule addLoadMoreModule(@NonNull BaseQuickAdapter<?, ?> baseQuickAdapter) {
-        return new BaseLoadMoreModule(baseQuickAdapter);
-    }
-
 }

+ 192 - 0
student/src/main/java/com/cooleshow/student/bean/HomeworkListBean.java

@@ -23,6 +23,14 @@ public class HomeworkListBean {
     public int totalPage;
     public List<RowsBean> rows;
 
+    public List<RowsBean> getRows() {
+        return rows;
+    }
+
+    public void setRows(List<RowsBean> rows) {
+        this.rows = rows;
+    }
+
     public static class RowsBean {
 
 
@@ -49,5 +57,189 @@ public class HomeworkListBean {
         public int homeworkId;
         public String type;
         public String imUserId;
+
+        public String getStartTime() {
+            return startTime;
+        }
+
+        public void setStartTime(String startTime) {
+            this.startTime = startTime;
+        }
+
+        public String getEndTime() {
+            return endTime;
+        }
+
+        public void setEndTime(String endTime) {
+            this.endTime = endTime;
+        }
+
+        public String getStudentAvatar() {
+            return studentAvatar;
+        }
+
+        public void setStudentAvatar(String studentAvatar) {
+            this.studentAvatar = studentAvatar;
+        }
+
+        public String getStudentName() {
+            return studentName;
+        }
+
+        public void setStudentName(String studentName) {
+            this.studentName = studentName;
+        }
+
+        public String getTeacherName() {
+            return teacherName;
+        }
+
+        public void setTeacherName(String teacherName) {
+            this.teacherName = teacherName;
+        }
+
+        public String getTeacherAvatar() {
+            return teacherAvatar;
+        }
+
+        public void setTeacherAvatar(String teacherAvatar) {
+            this.teacherAvatar = teacherAvatar;
+        }
+
+        public int getAbsenteeism() {
+            return absenteeism;
+        }
+
+        public void setAbsenteeism(int absenteeism) {
+            this.absenteeism = absenteeism;
+        }
+
+        public String getCourseGroupName() {
+            return courseGroupName;
+        }
+
+        public void setCourseGroupName(String courseGroupName) {
+            this.courseGroupName = courseGroupName;
+        }
+
+        public String getSubjectName() {
+            return subjectName;
+        }
+
+        public void setSubjectName(String subjectName) {
+            this.subjectName = subjectName;
+        }
+
+        public String getImGroupId() {
+            return imGroupId;
+        }
+
+        public void setImGroupId(String imGroupId) {
+            this.imGroupId = imGroupId;
+        }
+
+        public String getCourseId() {
+            return courseId;
+        }
+
+        public void setCourseId(String courseId) {
+            this.courseId = courseId;
+        }
+
+        public int getClassNum() {
+            return classNum;
+        }
+
+        public void setClassNum(int classNum) {
+            this.classNum = classNum;
+        }
+
+        public String getTeacherId() {
+            return teacherId;
+        }
+
+        public void setTeacherId(String teacherId) {
+            this.teacherId = teacherId;
+        }
+
+        public int getStudentId() {
+            return studentId;
+        }
+
+        public void setStudentId(int studentId) {
+            this.studentId = studentId;
+        }
+
+        public Object getSubmitTime() {
+            return submitTime;
+        }
+
+        public void setSubmitTime(Object submitTime) {
+            this.submitTime = submitTime;
+        }
+
+        public int getCourseGroupId() {
+            return courseGroupId;
+        }
+
+        public void setCourseGroupId(int courseGroupId) {
+            this.courseGroupId = courseGroupId;
+        }
+
+        public String getBackgroundPic() {
+            return backgroundPic;
+        }
+
+        public void setBackgroundPic(String backgroundPic) {
+            this.backgroundPic = backgroundPic;
+        }
+
+        public String getClassDate() {
+            return classDate;
+        }
+
+        public void setClassDate(String classDate) {
+            this.classDate = classDate;
+        }
+
+        public String getHomeworkStatus() {
+            return homeworkStatus;
+        }
+
+        public void setHomeworkStatus(String homeworkStatus) {
+            this.homeworkStatus = homeworkStatus;
+        }
+
+        public String getDecorateTime() {
+            return decorateTime;
+        }
+
+        public void setDecorateTime(String decorateTime) {
+            this.decorateTime = decorateTime;
+        }
+
+        public int getHomeworkId() {
+            return homeworkId;
+        }
+
+        public void setHomeworkId(int homeworkId) {
+            this.homeworkId = homeworkId;
+        }
+
+        public String getType() {
+            return type;
+        }
+
+        public void setType(String type) {
+            this.type = type;
+        }
+
+        public String getImUserId() {
+            return imUserId;
+        }
+
+        public void setImUserId(String imUserId) {
+            this.imUserId = imUserId;
+        }
     }
 }

+ 2 - 1
student/src/main/java/com/cooleshow/student/presenter/homework/HomeWorkPresenter.java

@@ -19,7 +19,7 @@ import org.json.JSONObject;
  * 类说明:
  */
 public class HomeWorkPresenter extends BasePresenter<HomeWorkContract.HomeWorkView> implements HomeWorkContract.Presenter {
-    public void queryHomeworkList(boolean isLoading,int page,String submit,String date){
+    public void queryHomeworkList(boolean isLoading,int page,String submit,String date,String search){
         if (isLoading && getView() != null) {
             getView().showLoading();
         }
@@ -27,6 +27,7 @@ public class HomeWorkPresenter extends BasePresenter<HomeWorkContract.HomeWorkVi
         try {
             jsonObject.put("submit",submit);
             jsonObject.put("date",date);
+            jsonObject.put("search",search);
             jsonObject.putOpt("page", page);
             jsonObject.putOpt("rows", Constants.DEFAULT_DATA_SIZE);
         } catch (JSONException e) {

+ 72 - 12
student/src/main/java/com/cooleshow/student/ui/work/HomeWorkActivity.java

@@ -1,22 +1,29 @@
 package com.cooleshow.student.ui.work;
 
+import android.graphics.Typeface;
 import android.os.Bundle;
+import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.TextView;
 
 import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
 import androidx.viewpager.widget.ViewPager;
+import androidx.viewpager2.widget.ViewPager2;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.cooleshow.base.router.RouterPath;
 
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.Utils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.student.R;
 import com.cooleshow.student.adapter.HomeWorkPagerAdapter;
 import com.cooleshow.student.contract.HomeWorkActContract;
 import com.cooleshow.student.databinding.ActivityHomeworkBinding;
 import com.cooleshow.student.presenter.homework.HomeWorkActPresenter;
 import com.google.android.material.tabs.TabLayout;
+import com.google.android.material.tabs.TabLayoutMediator;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -31,18 +38,24 @@ import java.util.List;
  */
 @Route(path = RouterPath.WorkCenter.TEACHER_WORK_HOMEWORK)
 public class HomeWorkActivity extends BaseMVPActivity<ActivityHomeworkBinding, HomeWorkActPresenter> implements HomeWorkActContract.HomeWorkActView, View.OnClickListener {
+    private TabLayout tabLayout;
+    private ViewPager2 viewPager;
+    private List<String> titles = new ArrayList<String>(Arrays.asList("未提交", "已提交"));
+    private List<String> auditStatusList = new ArrayList<String>(Arrays.asList("NO", "YES"));
+    private ArrayList<Fragment> fragments = new ArrayList<>();
+    private HomeWorkPagerAdapter mHomeWorkPagerAdapter;
+
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         QMUIStatusBarHelper.setStatusBarLightMode(this);
-    }
 
-    private TabLayout tabLayout;
-    private ViewPager viewPager;
+    }
 
     @Override
     protected void initView() {
-        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "课后作业");
+        Utils.setHeadView(viewBinding.viewStatusBar, this, 0);
         tabLayout = viewBinding.tablayout;
         viewPager = viewBinding.viewpager;
         viewPager.setCurrentItem(0);
@@ -55,7 +68,11 @@ public class HomeWorkActivity extends BaseMVPActivity<ActivityHomeworkBinding, H
 
     @Override
     public void onClick(View view) {
-
+        int id = view.getId();
+        if (id == R.id.iv_back) {
+            finish();
+            return;
+        }
     }
 
     @Override
@@ -66,23 +83,66 @@ public class HomeWorkActivity extends BaseMVPActivity<ActivityHomeworkBinding, H
     @Override
     public void initData() {
         super.initData();
+        initListener();
         initTabLayoutAndViewPager();
     }
 
-    private List<String> titles = new ArrayList<String>(Arrays.asList("未提交", "已提交"));
-    private List<String> auditStatusList = new ArrayList<String>(Arrays.asList("NO", "YES"));
-    private List<Fragment> fragments = new ArrayList<>();
-
+    private void initListener() {
+        viewBinding.ivBack.setOnClickListener(this);
+        viewBinding.tablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+            @Override
+            public void onTabSelected(TabLayout.Tab tab) {
+                if (tab != null && tab.getCustomView() != null) {
+                    View customView = tab.getCustomView();
+                    TextView tv_text = customView.findViewById(R.id.tv_text);
+                    tv_text.setTextSize(16);
+                    tv_text.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_131415));
+                    tv_text.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
+                }
+            }
+
+            @Override
+            public void onTabUnselected(TabLayout.Tab tab) {
+                if (tab != null && tab.getCustomView() != null) {
+                    View customView = tab.getCustomView();
+                    TextView tv_text = customView.findViewById(R.id.tv_text);
+                    tv_text.setTextSize(16);
+                    tv_text.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_80000000));
+                    tv_text.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
+                }
+            }
+
+            @Override
+            public void onTabReselected(TabLayout.Tab tab) {
+
+            }
+        });
+    }
     private void initTabLayoutAndViewPager() {
         tabLayout.removeAllTabs();
         fragments.clear();
+
+        TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(viewBinding.tablayout, viewBinding.viewpager, (tab, position) -> {
+            //这里需要根据position修改tab的样式和文字等
+            createTab(tab, titles.get(position));
+        });
+
         for (int i = 0; i < titles.size(); i++) {
-            tabLayout.addTab(tabLayout.newTab().setText(titles.get(i)));
             Fragment adFragment = HomeWorkFragment.newInstance(auditStatusList.get(i));
             fragments.add(adFragment);
         }
-        viewPager.setAdapter(new HomeWorkPagerAdapter(getSupportFragmentManager(), fragments, titles));
-        tabLayout.setupWithViewPager(viewPager);
+        mHomeWorkPagerAdapter = new HomeWorkPagerAdapter(this);
+        mHomeWorkPagerAdapter.setFragments(fragments);
+        viewPager.setAdapter(mHomeWorkPagerAdapter);
+        tabLayoutMediator.attach();
     }
 
+
+    private TabLayout.Tab createTab(TabLayout.Tab tab, String text) {
+        View view = LayoutInflater.from(this).inflate(R.layout.view_mine_course_tab_layout, null);
+        TextView tv_text = view.findViewById(R.id.tv_text);
+        tv_text.setText(text);
+        tab.setCustomView(view);
+        return tab;
+    }
 }

+ 74 - 48
student/src/main/java/com/cooleshow/student/ui/work/HomeWorkFragment.java

@@ -22,6 +22,7 @@ import com.chad.library.adapter.base.listener.OnLoadMoreListener;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.LOG;
 import com.cooleshow.base.utils.TimeUtils;
 
 import com.cooleshow.chatmodule.utils.helper.ChatHelper;
@@ -32,6 +33,7 @@ import com.cooleshow.student.constants.CourseConstants;
 import com.cooleshow.student.contract.HomeWorkContract;
 import com.cooleshow.student.databinding.FragmentHomeworkBinding;
 import com.cooleshow.student.presenter.homework.HomeWorkPresenter;
+import com.scwang.smart.refresh.footer.ClassicsFooter;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
 
@@ -47,6 +49,13 @@ import java.util.List;
  * 类说明:
  */
 public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, HomeWorkPresenter> implements HomeWorkContract.HomeWorkView, View.OnClickListener {
+    private String search;
+    private String submit = "";
+    private HomeworkAdapter mAdapter;
+    private int currentPage;
+    private Date currentSelectDate;
+    private String currentFilterDate;
+    private boolean hasNext = true;
 
     public static HomeWorkFragment newInstance(String submit) {
         Bundle args = new Bundle();
@@ -58,11 +67,17 @@ public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, H
 
     @Override
     public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.tv_date:
-                showTimeSelectPicker();
-                break;
+        int id = view.getId();
+        if (id == R.id.tv_date) {
+            showTimeSelectPicker();
         }
+        if (id == R.id.tv_search) {
+            currentPage = 1;
+            search = mViewBinding.etTargetName.getText().toString().trim();
+            queryCourse(false);
+            return;
+        }
+
     }
 
     @Override
@@ -75,26 +90,41 @@ public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, H
         return new HomeWorkPresenter();
     }
 
-    private String submit = "";
-    private HomeworkAdapter homeworkAdapter;
+
 
     @Override
     protected void initView(View rootView) {
         submit = getArguments().getString("submit");
-        mViewBinding.tvDate.setOnClickListener(this);
-        RecyclerView rvAddress = mViewBinding.recyclerView;
+
+        mViewBinding.refreshLayout.setRefreshFooter(new ClassicsFooter(getContext()));
+        RecyclerView rvAddress = mViewBinding.recyclerViewList;
         LinearLayoutManager manager = new LinearLayoutManager(getContext());
         rvAddress.setLayoutManager(manager);
-        homeworkAdapter = new HomeworkAdapter();
+        mAdapter = new HomeworkAdapter();
         LayoutInflater inflater = LayoutInflater.from(getContext());
         View emptyLayout = inflater.inflate(R.layout.layout_empty_conent, null);
-        homeworkAdapter.setEmptyView(emptyLayout);
-        rvAddress.setAdapter(homeworkAdapter);
-        homeworkAdapter.setOnItemClickListener(new OnItemClickListener() {
+        mAdapter.setEmptyView(emptyLayout);
+        rvAddress.setAdapter(mAdapter);
+    }
+
+
+
+    @Override
+    protected void initData() {
+        initListener();
+        currentPage = 1;
+        reBuildFilter(null);
+        queryCourse(true);
+    }
+
+    private void initListener(){
+        mViewBinding.tvDate.setOnClickListener(this);
+        mViewBinding.tvSearch.setOnClickListener(this);
+        mAdapter.setOnItemClickListener(new OnItemClickListener() {
             @Override
             public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
-                if (position < homeworkAdapter.getData().size()) {
-                    HomeworkListBean.RowsBean rowsBean = homeworkAdapter.getData().get(position);
+                if (position < mAdapter.getData().size()) {
+                    HomeworkListBean.RowsBean rowsBean = mAdapter.getData().get(position);
                     if (rowsBean != null) {
                         ARouter.getInstance().build(RouterPath.WorkCenter.STUDENT_HOMEWORK_DETAIL)
                                 .withString("course_id", rowsBean.courseId)
@@ -104,13 +134,13 @@ public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, H
             }
         });
 
-        homeworkAdapter.setOnItemChildClickListener(new OnItemChildClickListener() {
+        mAdapter.setOnItemChildClickListener(new OnItemChildClickListener() {
             @Override
             public void onItemChildClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
-                if (position >= homeworkAdapter.getData().size()) {
+                if (position >= mAdapter.getData().size()) {
                     return;
                 }
-                HomeworkListBean.RowsBean rowsBean = homeworkAdapter.getData().get(position);
+                HomeworkListBean.RowsBean rowsBean = mAdapter.getData().get(position);
                 if (rowsBean != null) {
                     if (view.getId() == R.id.iv_go_chat) {
                         ChatHelper.getInstance().goChat(rowsBean.imUserId, rowsBean.teacherName);
@@ -118,12 +148,7 @@ public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, H
                 }
             }
         });
-    }
 
-    private int currentPage;
-
-    @Override
-    protected void initData() {
         mViewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
             @Override
             public void onRefresh(@NonNull RefreshLayout refreshLayout) {
@@ -131,26 +156,22 @@ public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, H
                 queryCourse(true);
             }
         });
-        homeworkAdapter.getLoadMoreModule().setOnLoadMoreListener(new OnLoadMoreListener() {
+
+        mViewBinding.refreshLayout.setOnLoadMoreListener(new com.scwang.smart.refresh.layout.listener.OnLoadMoreListener() {
             @Override
-            public void onLoadMore() {
+            public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
                 //上拉加载
                 if (hasNext) {
                     currentPage++;
                     queryCourse(false);
                 } else {
-                    homeworkAdapter.getLoadMoreModule().loadMoreEnd();
+                    mViewBinding.refreshLayout.finishLoadMoreWithNoMoreData();
                 }
             }
         });
-        currentPage = 1;
-        reBuildFilter(null);
-        queryCourse(true);
     }
 
 
-    private boolean hasNext = true;
-
     /**
      * 检查是否还有下一页
      *
@@ -161,30 +182,37 @@ public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, H
     }
 
     private void queryCourse(boolean isLoading) {
-        presenter.queryHomeworkList(isLoading, currentPage, submit, currentFilterDate);
+        presenter.queryHomeworkList(isLoading, currentPage, submit, currentFilterDate,search);
     }
 
     @Override
-    public void queryHomeworkListSuccess(int page, HomeworkListBean data) {
+    public void queryHomeworkListSuccess(int page, HomeworkListBean dataList) {
         if (isDetached()) {
             return;
         }
-        if (data != null) {
+        LOG.i("pq", "onGetCourseGroupSuccess:" + dataList);
+        if (dataList != null) {
             if (page == 1) {
+                //第一页
                 mViewBinding.refreshLayout.finishRefresh();
-                homeworkAdapter.getData().clear();
-                homeworkAdapter.notifyDataSetChanged();
-                if (data.rows != null && data.rows.size() > 0) {
-                    checkHasNext(data.rows.size());
-                    homeworkAdapter.setNewInstance(data.rows);
+                if (mAdapter != null) {
+                    mAdapter.getData().clear();
+                    mAdapter.notifyDataSetChanged();
+                    if (dataList.getRows() != null && dataList.getRows().size() > 0) {
+                        checkHasNext(dataList.getRows().size());
+                        mAdapter.setNewInstance(dataList.getRows());
+                    }
                 }
             } else {
-                if (data.rows != null && data.rows.size() > 0) {
-                    homeworkAdapter.getLoadMoreModule().loadMoreComplete();
-                    homeworkAdapter.addData(data.rows);
-                    checkHasNext(data.rows.size());
-                } else {
-                    homeworkAdapter.getLoadMoreModule().loadMoreEnd();
+                //加载更多
+                if (mAdapter != null) {
+                    if (dataList.getRows() != null && dataList.getRows().size() > 0) {
+                        mViewBinding.refreshLayout.finishLoadMore();
+                        checkHasNext(dataList.getRows().size());
+                        mAdapter.addData(dataList.getRows());
+                    } else {
+                        mViewBinding.refreshLayout.finishLoadMoreWithNoMoreData();
+                    }
                 }
             }
         }
@@ -199,9 +227,9 @@ public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, H
         if (page == 1) {
             mViewBinding.refreshLayout.finishRefresh();
         } else {
-            if (homeworkAdapter != null) {
+            if (mAdapter != null) {
                 currentPage--;
-                homeworkAdapter.getLoadMoreModule().loadMoreFail();
+                mViewBinding.refreshLayout.finishLoadMore(false);
             }
         }
     }
@@ -252,8 +280,6 @@ public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, H
         }
     }
 
-    private Date currentSelectDate;
-    private String currentFilterDate;
 
     private void reBuildFilter(Date date) {
         currentSelectDate = date != null ? date : TimeUtils.getNowDate();

+ 41 - 14
student/src/main/res/layout/activity_homework.xml

@@ -1,38 +1,65 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout 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"
-    android:background="@color/color_f6f8f9"
     android:orientation="vertical">
 
-    <include
-        android:id="@+id/toolbar_include"
-        layout="@layout/common_toolbar_layout" />
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:adjustViewBounds="true"
+        android:src="@drawable/bg_appointment_top"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <View
+        android:id="@+id/view_status_bar"
+        android:layout_width="match_parent"
+        android:layout_height="1px"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
 
     <com.google.android.material.tabs.TabLayout
-        android:background="@color/white"
         android:id="@+id/tablayout"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/dp_44"
+        android:layout_width="wrap_content"
+        android:layout_height="@dimen/dp_50"
         android:scrollbars="none"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_status_bar"
         app:tabBackground="@null"
         app:tabGravity="fill"
         app:tabIndicator="@drawable/tab_indicator"
         app:tabIndicatorColor="@color/color_2dc7aa"
         app:tabIndicatorFullWidth="false"
         app:tabIndicatorHeight="4dp"
-        app:tabMode="fixed"
+        app:tabMode="scrollable"
+        app:tabPaddingEnd="16dp"
+        app:tabPaddingStart="16dp"
         app:tabRippleColor="@null"
         app:tabSelectedTextColor="@color/black_333"
         app:tabTextAppearance="@style/tab_layout_style"
         app:tabTextColor="@color/color_666666" />
+    <ImageView
+        android:id="@+id/iv_back"
+        android:layout_width="wrap_content"
+        android:layout_height="0dp"
+        android:layout_gravity="center_vertical"
+        android:paddingStart="19dp"
+        android:paddingRight="12dp"
+        android:src="@drawable/icon_back_black"
+        app:layout_constraintBottom_toBottomOf="@+id/tablayout"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/tablayout" />
 
-
-
-    <androidx.viewpager.widget.ViewPager
+    <androidx.viewpager2.widget.ViewPager2
         android:id="@+id/viewpager"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_weight="1" />
-</LinearLayout>
+        android:layout_weight="1"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/tablayout" />
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 91 - 14
student/src/main/res/layout/fragment_homework.xml

@@ -1,34 +1,111 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout 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"
-    android:orientation="vertical">
+    xmlns:tools="http://schemas.android.com/tools"
+    android:paddingTop="14dp"
+    android:layout_height="match_parent">
 
     <TextView
-        android:drawablePadding="6dp"
         android:id="@+id/tv_date"
         android:layout_width="wrap_content"
-        android:layout_height="@dimen/dp_50"
-        android:layout_marginLeft="14dp"
+        android:layout_height="0dp"
         android:drawableRight="@drawable/icon_arrow_down"
+        android:drawablePadding="6dp"
+        android:ellipsize="end"
         android:gravity="center"
-        android:text="2021年9月"
-        android:textColor="@color/black_333"
-        android:textSize="@dimen/sp_14" />
+        android:includeFontPadding="false"
+        android:maxLines="1"
+        android:paddingStart="13dp"
+        android:paddingEnd="8dp"
+        android:text=""
+        tools:text="2024年12月"
+        android:textColor="@color/color_333333"
+        android:textSize="@dimen/sp_14"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
 
+    <View
+        android:id="@+id/view_search_bg"
+        android:layout_width="0dp"
+        android:layout_height="34dp"
+        android:layout_marginEnd="14dp"
+        android:background="@drawable/bg_white_18dp"
+        app:layout_constraintLeft_toRightOf="@+id/tv_date"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ImageView
+        android:id="@+id/iv_search_icon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="12dp"
+        android:src="@drawable/icon_search"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toLeftOf="@+id/view_search_bg"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <com.cooleshow.base.widgets.ClearEditText
+        android:id="@+id/et_target_name"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="5dp"
+        android:background="@null"
+        android:ellipsize="end"
+        android:hint="请输入课程名称"
+        android:includeFontPadding="false"
+        android:maxLines="1"
+        android:paddingStart="8dp"
+        android:textColorHint="@color/color_66000000"
+        android:textColor="@color/color_333333"
+        android:textCursorDrawable="@drawable/shape_2dc7aa_1dp"
+        android:textSize="@dimen/sp_14"
+        android:theme="@style/MyEditText"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toRightOf="@+id/iv_search_icon"
+        app:layout_constraintRight_toLeftOf="@+id/tv_search"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <TextView
+        android:id="@+id/tv_search"
+        android:layout_width="56dp"
+        android:layout_height="28dp"
+        android:layout_marginEnd="3dp"
+        android:background="@drawable/shape_1ecdac_18dp"
+        android:gravity="center"
+        android:includeFontPadding="false"
+        android:text="搜索"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_14"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintRight_toRightOf="@+id/view_search_bg"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <View
+        android:layout_marginTop="12dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_search_bg"
+        android:id="@+id/view_top_line"
+        android:layout_width="match_parent"
+        android:layout_height="1px"/>
 
     <com.scwang.smart.refresh.layout.SmartRefreshLayout
         android:id="@+id/refreshLayout"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-
+        android:layout_height="0dp"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_top_line"
+        app:srlEnableLoadMore="true">
 
         <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/recyclerView"
+            android:id="@+id/recyclerView_list"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:overScrollMode="never"
             android:scrollbars="none" />
     </com.scwang.smart.refresh.layout.SmartRefreshLayout>
-</LinearLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 139 - 110
student/src/main/res/layout/layout_item_homework.xml

@@ -1,126 +1,155 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:layout_height="wrap_content"
+    android:layout_marginStart="14dp"
+    android:layout_marginBottom="12dp"
+    android:layout_marginEnd="14dp"
+    android:background="@drawable/bg_white_10dp"
+    android:paddingStart="12dp"
+    android:paddingEnd="12dp"
+    android:paddingBottom="12dp">
 
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
+    <ImageView
+        android:id="@+id/iv_clock_icon"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginLeft="14dp"
-        android:layout_marginTop="12dp"
-        android:layout_marginRight="14dp"
-        android:background="@drawable/bg_white_10dp">
-
-        <ImageView
-            android:id="@+id/im_clock"
-            android:layout_width="@dimen/dp_16"
-            android:layout_height="@dimen/dp_16"
-            android:layout_marginLeft="11dp"
-            android:layout_marginTop="@dimen/dp_12"
-            android:background="@drawable/icon_clock"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
+        android:layout_marginTop="15dp"
+        android:src="@drawable/icon_clock"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
 
-        <TextView
-            android:id="@+id/tv_date"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="7dp"
-            android:text="2021/09/17 14:00~15:00"
-            android:textColor="@color/color_666666"
-            android:textSize="@dimen/sp_13"
-            app:layout_constraintBottom_toBottomOf="@+id/im_clock"
-            app:layout_constraintLeft_toRightOf="@+id/im_clock"
-            app:layout_constraintTop_toTopOf="@+id/im_clock" />
+    <TextView
+        android:id="@+id/tv_time"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="6dp"
+        android:includeFontPadding="false"
+        android:textColor="@color/color_666666"
+        android:textSize="@dimen/sp_13"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_clock_icon"
+        app:layout_constraintLeft_toRightOf="@+id/iv_clock_icon"
+        app:layout_constraintTop_toTopOf="@+id/iv_clock_icon"
+        tools:text="2021/09/17 14:00~14:25" />
 
+    <View
+        android:id="@+id/view_line"
+        android:layout_width="0dp"
+        android:layout_height="1dp"
+        android:layout_marginTop="15dp"
+        android:background="@color/color_f2f2f2"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/iv_clock_icon" />
 
-        <TextView
-            android:id="@+id/tv_state"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginRight="11dp"
-            android:textColor="@color/color_999999"
-            android:textSize="@dimen/sp_14"
-            app:layout_constraintBottom_toBottomOf="@+id/im_clock"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintTop_toTopOf="@+id/im_clock" />
+    <de.hdodenhof.circleimageview.CircleImageView
+        android:src="@drawable/icon_default_head"
+        android:id="@+id/iv_avatar"
+        android:layout_width="40dp"
+        android:layout_height="40dp"
+        android:layout_marginTop="12dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_line"
+        app:qmui_corner_radius="5dp" />
 
-        <TextView
-            android:id="@+id/tv_join_state"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:textColor="@color/color_999999"
-            android:textSize="@dimen/sp_13"
-            android:visibility="gone"
-            app:layout_constraintBottom_toBottomOf="@+id/tv_state"
-            app:layout_constraintRight_toLeftOf="@+id/tv_state"
-            app:layout_constraintTop_toTopOf="@+id/tv_state" />
+    <TextView
+        android:id="@+id/tv_title"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="10dp"
+        android:includeFontPadding="false"
+        android:textColor="@color/color_1a1a1a"
+        android:textSize="@dimen/sp_15"
+        android:maxLines="1"
+        android:ellipsize="end"
+        app:layout_constraintWidth_default="wrap"
+        app:layout_constraintHorizontal_bias="0"
+        app:layout_constraintHorizontal_chainStyle="packed"
+        app:layout_constraintRight_toLeftOf="@+id/iv_attendance_status"
+        app:layout_constraintBottom_toTopOf="@+id/tv_name"
+        app:layout_constraintLeft_toRightOf="@+id/iv_avatar"
+        app:layout_constraintTop_toTopOf="@+id/iv_avatar"
+        app:layout_constraintVertical_chainStyle="packed"
+        tools:text="VIP定制课-张豆豆VIP定制课张豆豆VIP定制课张豆豆VIP定制课-张豆豆" />
 
-        <View
-            android:id="@+id/view_line"
-            android:layout_width="match_parent"
-            android:layout_height="1dp"
-            android:layout_marginLeft="10dp"
-            android:layout_marginTop="10dp"
-            android:layout_marginRight="9dp"
-            android:background="@color/color_f2f2f2"
-            app:layout_constraintTop_toBottomOf="@+id/im_clock" />
+    <ImageView
+        tools:visibility="gone"
+        android:visibility="gone"
+        android:layout_marginStart="5dp"
+        android:id="@+id/iv_attendance_status"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/tv_title"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_title"
+        app:layout_constraintTop_toTopOf="@+id/tv_title"
+        android:src="@drawable/icon_course_attendance_truancy"
+        android:layout_width="wrap_content"
+        android:layout_marginEnd="5dp"
+        android:adjustViewBounds="true"
+        android:layout_height="17.1dp"/>
 
-        <com.cooleshow.base.widgets.QMUIRadiusImageView
-            android:id="@+id/im_header"
-            android:layout_width="54dp"
-            android:layout_height="54dp"
-            android:layout_marginLeft="11dp"
-            android:layout_marginTop="17dp"
-            android:layout_marginBottom="20dp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/view_line"
-            app:qmui_corner_radius="5dp" />
+    <TextView
+        android:id="@+id/tv_name"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="4dp"
+        android:ellipsize="middle"
+        android:includeFontPadding="false"
+        android:singleLine="true"
+        android:textColor="@color/color_999999"
+        android:textSize="@dimen/sp_13"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_avatar"
+        app:layout_constraintHorizontal_bias="0"
+        app:layout_constraintHorizontal_chainStyle="packed"
+        app:layout_constraintLeft_toLeftOf="@+id/tv_title"
+        app:layout_constraintRight_toLeftOf="@+id/tv_course_name"
+        app:layout_constraintTop_toBottomOf="@+id/tv_title"
+        app:layout_constraintWidth_default="wrap"
+        tools:text="张豆豆张豆豆张豆豆张豆豆张豆豆张豆豆张豆豆张豆豆张豆豆张豆豆张豆豆张豆豆" />
 
-        <TextView
-            android:id="@+id/tv_name"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="10dp"
-            android:text="张豆豆"
-            android:textColor="@color/color_1a1a1a"
-            android:textSize="@dimen/sp_16"
-            app:layout_constraintLeft_toRightOf="@+id/im_header"
-            app:layout_constraintTop_toTopOf="@+id/im_header" />
+    <ImageView
+        android:id="@+id/iv_go_chat"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="5dp"
+        android:src="@drawable/icon_chat_small"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_title"
+        app:layout_constraintLeft_toRightOf="@+id/tv_title"
+        app:layout_constraintTop_toTopOf="@+id/tv_title" />
 
-        <ImageView
-            android:id="@+id/iv_go_chat"
-            android:layout_width="@dimen/dp_19"
-            android:layout_height="@dimen/dp_18"
-            android:layout_marginLeft="5dp"
-            android:background="@drawable/icon_chat_small"
-            app:layout_constraintBottom_toBottomOf="@+id/tv_name"
-            app:layout_constraintLeft_toRightOf="@+id/tv_name"
-            app:layout_constraintTop_toTopOf="@+id/tv_name" />
+    <TextView
+        android:id="@+id/tv_course_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="5dp"
+        android:layout_marginEnd="5dp"
+        android:background="@drawable/shape_couse_type_text_bg"
+        android:gravity="center"
+        android:includeFontPadding="false"
+        android:paddingStart="4dp"
+        android:paddingTop="1.5dp"
+        android:paddingEnd="4dp"
+        android:paddingBottom="1.5dp"
+        android:textColor="@color/color_ff8c00"
+        android:textSize="@dimen/sp_10"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_name"
+        app:layout_constraintLeft_toRightOf="@+id/tv_name"
+        app:layout_constraintTop_toTopOf="@+id/tv_name"
+        tools:text="单簧管" />
 
 
-        <TextView
-            android:id="@+id/tv_submit"
-            android:layout_width="@dimen/dp_70"
-            android:layout_height="@dimen/dp_28"
-            android:layout_marginBottom="@dimen/dp_20"
-            android:layout_marginRight="@dimen/dp_12"
-            android:gravity="center"
-            android:textSize="@dimen/sp_12"
-            android:textColor="@color/color_2dc7aa"
-            android:background="@drawable/bg_2dc7aa_border"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent"/>
+    <TextView
+        android:id="@+id/tv_state"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="@color/color_999999"
+        android:textSize="@dimen/sp_14"
+        app:layout_constraintBottom_toTopOf="@+id/view_line"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:text="未开始" />
 
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/rv_mark"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="10dp"
-            android:visibility="gone"
-            app:layout_constraintBottom_toBottomOf="@+id/im_header"
-            app:layout_constraintLeft_toRightOf="@+id/im_header" />
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</RelativeLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 1
teacher/src/main/res/layout/activity_homework.xml

@@ -57,7 +57,6 @@
         android:id="@+id/viewpager"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_marginTop="12dp"
         android:layout_weight="1"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintLeft_toLeftOf="parent"

+ 2 - 2
teacher/src/main/res/layout/fragment_homework.xml

@@ -3,7 +3,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     xmlns:tools="http://schemas.android.com/tools"
-    android:paddingTop="10dp"
+    android:paddingTop="14dp"
     android:layout_height="match_parent">
 
     <TextView
@@ -53,7 +53,7 @@
         android:layout_marginEnd="5dp"
         android:background="@null"
         android:ellipsize="end"
-        android:hint="@string/mine_course_search_tip"
+        android:hint="请输入课程名称"
         android:includeFontPadding="false"
         android:maxLines="1"
         android:paddingStart="8dp"