Commit 1863fd36a12853cb392ea6dbffc1ede9f4fa31f9
1 parent
d34cc18f6a
Exists in
master
作业列表布局修改
Showing
6 changed files
with
194 additions
and
1 deletions
Show diff stats
app/src/main/java/com/hjx/parent/StuHomeworkActivity.java
1 | package com.hjx.parent; | 1 | package com.hjx.parent; |
2 | 2 | ||
3 | import android.annotation.SuppressLint; | 3 | import android.annotation.SuppressLint; |
4 | import android.os.Bundle; | 4 | import android.os.Bundle; |
5 | import android.widget.LinearLayout; | 5 | import android.widget.LinearLayout; |
6 | import android.widget.PopupWindow; | 6 | import android.widget.PopupWindow; |
7 | 7 | ||
8 | import androidx.lifecycle.MutableLiveData; | 8 | import androidx.lifecycle.MutableLiveData; |
9 | 9 | ||
10 | import com.google.gson.Gson; | 10 | import com.google.gson.Gson; |
11 | import com.hjx.parent.adapter.HomeworkAdapter; | 11 | import com.hjx.parent.adapter.HomeworkAdapter; |
12 | import com.hjx.parent.adapter.HomeworkListAdapter; | ||
12 | import com.hjx.parent.databinding.ActivityStudentHomeworkBinding; | 13 | import com.hjx.parent.databinding.ActivityStudentHomeworkBinding; |
13 | import com.hjx.parent.databinding.PopupFilterFeedbackBinding; | 14 | import com.hjx.parent.databinding.PopupFilterFeedbackBinding; |
14 | import com.hjx.parent.databinding.PopupFilterGradeBinding; | 15 | import com.hjx.parent.databinding.PopupFilterGradeBinding; |
15 | import com.hjx.parent.databinding.PopupFilterSubjectBinding; | 16 | import com.hjx.parent.databinding.PopupFilterSubjectBinding; |
16 | import com.hjx.parent.databinding.PopupFilterTermBinding; | 17 | import com.hjx.parent.databinding.PopupFilterTermBinding; |
17 | import com.hjx.parent.rx.BaseRxActivity; | 18 | import com.hjx.parent.rx.BaseRxActivity; |
18 | import com.prws.common.bean.Student; | 19 | import com.prws.common.bean.Student; |
19 | import com.prws.common.net.NetWorks; | 20 | import com.prws.common.net.NetWorks; |
20 | import com.prws.common.utils.SharedPreferencesUtil; | 21 | import com.prws.common.utils.SharedPreferencesUtil; |
21 | import com.trello.rxlifecycle2.android.RxLifecycleAndroid; | 22 | import com.trello.rxlifecycle2.android.RxLifecycleAndroid; |
22 | 23 | ||
23 | import java.util.Collections; | 24 | import java.util.Collections; |
24 | 25 | ||
25 | import io.reactivex.Observable; | 26 | import io.reactivex.Observable; |
26 | import io.reactivex.android.schedulers.AndroidSchedulers; | 27 | import io.reactivex.android.schedulers.AndroidSchedulers; |
27 | import io.reactivex.schedulers.Schedulers; | 28 | import io.reactivex.schedulers.Schedulers; |
28 | 29 | ||
29 | public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkBinding> { | 30 | public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkBinding> { |
30 | 31 | ||
31 | private final HomeworkAdapter homeworkAdapter = new HomeworkAdapter(); | 32 | private final HomeworkListAdapter homeworkAdapter = new HomeworkListAdapter(); |
32 | 33 | ||
33 | PopupWindow subjectFilter, gradeFilter, termFilter, feedbackFilter; | 34 | PopupWindow subjectFilter, gradeFilter, termFilter, feedbackFilter; |
34 | State state = new State(); | 35 | State state = new State(); |
35 | 36 | ||
36 | private void handlerIntent() { | 37 | private void handlerIntent() { |
37 | String json = getIntent().getStringExtra("studentJson"); | 38 | String json = getIntent().getStringExtra("studentJson"); |
38 | if (json == null) json = (String) SharedPreferencesUtil.getData("student", ""); | 39 | if (json == null) json = (String) SharedPreferencesUtil.getData("student", ""); |
39 | try { state.student = new Gson().fromJson(json, Student.class); } | 40 | try { state.student = new Gson().fromJson(json, Student.class); } |
40 | catch (Throwable t) { t.printStackTrace(); } | 41 | catch (Throwable t) { t.printStackTrace(); } |
41 | } | 42 | } |
42 | 43 | ||
43 | @SuppressLint("SetTextI18n") | 44 | @SuppressLint("SetTextI18n") |
44 | @Override | 45 | @Override |
45 | public void initView(Bundle savedInstanceState) { | 46 | public void initView(Bundle savedInstanceState) { |
46 | handlerIntent(); | 47 | handlerIntent(); |
47 | if (state.student == null) { | 48 | if (state.student == null) { |
48 | finish(); | 49 | finish(); |
49 | return; | 50 | return; |
50 | } | 51 | } |
51 | binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); | 52 | binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); |
52 | binding.tvTitle.setText(state.student.stuName + "的全部作业"); | 53 | binding.tvTitle.setText(state.student.stuName + "的全部作业"); |
53 | 54 | ||
54 | binding.recyclerView.setAdapter(homeworkAdapter); | 55 | binding.recyclerView.setAdapter(homeworkAdapter); |
55 | getHomework(); | 56 | getHomework(); |
56 | 57 | ||
57 | binding.ftSubject.setOnClickListener(v -> showSubjectFilter()); | 58 | binding.ftSubject.setOnClickListener(v -> showSubjectFilter()); |
58 | binding.ftGrade.setOnClickListener(v -> showGradeFilter()); | 59 | binding.ftGrade.setOnClickListener(v -> showGradeFilter()); |
59 | binding.ftTerm.setOnClickListener(v -> showTermFilter()); | 60 | binding.ftTerm.setOnClickListener(v -> showTermFilter()); |
60 | binding.ftFeedback.setOnClickListener(v -> showFeedbackFilter()); | 61 | binding.ftFeedback.setOnClickListener(v -> showFeedbackFilter()); |
61 | } | 62 | } |
62 | 63 | ||
63 | 64 | ||
64 | @SuppressLint("CheckResult") | 65 | @SuppressLint("CheckResult") |
65 | protected void getHomework() { | 66 | protected void getHomework() { |
66 | NetWorks.service_url.getStudentHomework(NetWorks.getHeader(), state.student.stuId) | 67 | NetWorks.service_url.getStudentHomework(NetWorks.getHeader(), state.student.stuId) |
67 | .subscribeOn(Schedulers.io()) | 68 | .subscribeOn(Schedulers.io()) |
68 | .observeOn(AndroidSchedulers.mainThread()) | 69 | .observeOn(AndroidSchedulers.mainThread()) |
69 | .compose(RxLifecycleAndroid.bindActivity(getRxLifecycle())) | 70 | .compose(RxLifecycleAndroid.bindActivity(getRxLifecycle())) |
70 | .toObservable() | 71 | .toObservable() |
71 | .flatMap(response -> Observable.fromIterable(response.getData())) | 72 | .flatMap(response -> Observable.fromIterable(response.getData())) |
72 | // 过滤 | 73 | // 过滤 |
73 | .filter(data -> { // 学科 | 74 | .filter(data -> { // 学科 |
74 | String subject = state.subject.getValue(); | 75 | String subject = state.subject.getValue(); |
75 | if (subject == null || subject.isEmpty()) return true; | 76 | if (subject == null || subject.isEmpty()) return true; |
76 | else return subject.equals(data.getSubject()); | 77 | else return subject.equals(data.getSubject()); |
77 | }) | 78 | }) |
78 | .filter(data -> { // 年级 | 79 | .filter(data -> { // 年级 |
79 | String grade = state.grade.getValue(); | 80 | String grade = state.grade.getValue(); |
80 | if (grade == null || grade.isEmpty()) return true; | 81 | if (grade == null || grade.isEmpty()) return true; |
81 | else return grade.equals(data.getGrade()); | 82 | else return grade.equals(data.getGrade()); |
82 | }) | 83 | }) |
83 | .filter(data -> { // 学期 | 84 | .filter(data -> { // 学期 |
84 | String term = state.term.getValue(); | 85 | String term = state.term.getValue(); |
85 | if (term == null || term.isEmpty()) return true; | 86 | if (term == null || term.isEmpty()) return true; |
86 | else return term.equals(data.getTerm()); | 87 | else return term.equals(data.getTerm()); |
87 | }) | 88 | }) |
88 | .filter(data -> { // 反馈 | 89 | .filter(data -> { // 反馈 |
89 | Integer feedback = state.feedback.getValue(); | 90 | Integer feedback = state.feedback.getValue(); |
90 | if (feedback == null || feedback == 0) return true; | 91 | if (feedback == null || feedback == 0) return true; |
91 | else return (feedback == 1 && data.getRight() != null) || (feedback == 2 && data.getRight() == null); | 92 | else return (feedback == 1 && data.getRight() != null) || (feedback == 2 && data.getRight() == null); |
92 | }) | 93 | }) |
93 | // 过滤完成, 收集 | 94 | // 过滤完成, 收集 |
94 | .toList() | 95 | .toList() |
95 | .subscribe((data, th) -> { | 96 | .subscribe((data, th) -> { |
96 | if (th != null) th.printStackTrace(); | 97 | if (th != null) th.printStackTrace(); |
97 | Collections.sort(data); | 98 | Collections.sort(data); |
98 | homeworkAdapter.setNewData(data); | 99 | homeworkAdapter.setNewData(data); |
99 | }); | 100 | }); |
100 | } | 101 | } |
101 | 102 | ||
102 | private void showSubjectFilter() { | 103 | private void showSubjectFilter() { |
103 | if (subjectFilter == null) { | 104 | if (subjectFilter == null) { |
104 | PopupFilterSubjectBinding db = PopupFilterSubjectBinding.inflate(getLayoutInflater()); | 105 | PopupFilterSubjectBinding db = PopupFilterSubjectBinding.inflate(getLayoutInflater()); |
105 | db.setLifecycleOwner(this); | 106 | db.setLifecycleOwner(this); |
106 | db.setState(state); | 107 | db.setState(state); |
107 | db.bg.setOnClickListener(v -> subjectFilter.dismiss()); | 108 | db.bg.setOnClickListener(v -> subjectFilter.dismiss()); |
108 | subjectFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); | 109 | subjectFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
109 | subjectFilter.setOutsideTouchable(true); | 110 | subjectFilter.setOutsideTouchable(true); |
110 | subjectFilter.setOnDismissListener(this::getHomework); | 111 | subjectFilter.setOnDismissListener(this::getHomework); |
111 | } | 112 | } |
112 | subjectFilter.showAsDropDown(binding.anchorView); | 113 | subjectFilter.showAsDropDown(binding.anchorView); |
113 | } | 114 | } |
114 | 115 | ||
115 | private void showGradeFilter() { | 116 | private void showGradeFilter() { |
116 | if (gradeFilter == null) { | 117 | if (gradeFilter == null) { |
117 | PopupFilterGradeBinding db = PopupFilterGradeBinding.inflate(getLayoutInflater()); | 118 | PopupFilterGradeBinding db = PopupFilterGradeBinding.inflate(getLayoutInflater()); |
118 | db.setLifecycleOwner(this); | 119 | db.setLifecycleOwner(this); |
119 | db.setState(state); | 120 | db.setState(state); |
120 | db.bg.setOnClickListener(v -> gradeFilter.dismiss()); | 121 | db.bg.setOnClickListener(v -> gradeFilter.dismiss()); |
121 | gradeFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); | 122 | gradeFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
122 | gradeFilter.setOutsideTouchable(true); | 123 | gradeFilter.setOutsideTouchable(true); |
123 | gradeFilter.setOnDismissListener(this::getHomework); | 124 | gradeFilter.setOnDismissListener(this::getHomework); |
124 | } | 125 | } |
125 | gradeFilter.showAsDropDown(binding.anchorView); | 126 | gradeFilter.showAsDropDown(binding.anchorView); |
126 | } | 127 | } |
127 | 128 | ||
128 | private void showTermFilter() { | 129 | private void showTermFilter() { |
129 | if (termFilter == null) { | 130 | if (termFilter == null) { |
130 | PopupFilterTermBinding db = PopupFilterTermBinding.inflate(getLayoutInflater()); | 131 | PopupFilterTermBinding db = PopupFilterTermBinding.inflate(getLayoutInflater()); |
131 | db.setLifecycleOwner(this); | 132 | db.setLifecycleOwner(this); |
132 | db.setState(state); | 133 | db.setState(state); |
133 | db.bg.setOnClickListener(v -> termFilter.dismiss()); | 134 | db.bg.setOnClickListener(v -> termFilter.dismiss()); |
134 | termFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); | 135 | termFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
135 | termFilter.setOutsideTouchable(true); | 136 | termFilter.setOutsideTouchable(true); |
136 | termFilter.setOnDismissListener(this::getHomework); | 137 | termFilter.setOnDismissListener(this::getHomework); |
137 | } | 138 | } |
138 | termFilter.showAsDropDown(binding.anchorView); | 139 | termFilter.showAsDropDown(binding.anchorView); |
139 | } | 140 | } |
140 | 141 | ||
141 | private void showFeedbackFilter() { | 142 | private void showFeedbackFilter() { |
142 | if (feedbackFilter == null) { | 143 | if (feedbackFilter == null) { |
143 | PopupFilterFeedbackBinding db = PopupFilterFeedbackBinding.inflate(getLayoutInflater()); | 144 | PopupFilterFeedbackBinding db = PopupFilterFeedbackBinding.inflate(getLayoutInflater()); |
144 | db.setLifecycleOwner(this); | 145 | db.setLifecycleOwner(this); |
145 | db.setState(state); | 146 | db.setState(state); |
146 | db.bg.setOnClickListener(v -> feedbackFilter.dismiss()); | 147 | db.bg.setOnClickListener(v -> feedbackFilter.dismiss()); |
147 | feedbackFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); | 148 | feedbackFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
148 | feedbackFilter.setOutsideTouchable(true); | 149 | feedbackFilter.setOutsideTouchable(true); |
149 | feedbackFilter.setOnDismissListener(this::getHomework); | 150 | feedbackFilter.setOnDismissListener(this::getHomework); |
150 | } | 151 | } |
151 | feedbackFilter.showAsDropDown(binding.anchorView); | 152 | feedbackFilter.showAsDropDown(binding.anchorView); |
152 | } | 153 | } |
153 | 154 | ||
154 | @Override | 155 | @Override |
155 | protected ActivityStudentHomeworkBinding getViewBinding() { | 156 | protected ActivityStudentHomeworkBinding getViewBinding() { |
156 | return ActivityStudentHomeworkBinding.inflate(getLayoutInflater()); | 157 | return ActivityStudentHomeworkBinding.inflate(getLayoutInflater()); |
157 | } | 158 | } |
158 | 159 | ||
159 | public static class State { | 160 | public static class State { |
160 | public Student student; | 161 | public Student student; |
161 | 162 | ||
162 | public MutableLiveData<String> subject = new MutableLiveData<>(""); | 163 | public MutableLiveData<String> subject = new MutableLiveData<>(""); |
163 | public void setSubject(String value) { | 164 | public void setSubject(String value) { |
164 | subject.setValue(value); | 165 | subject.setValue(value); |
165 | } | 166 | } |
166 | 167 | ||
167 | public MutableLiveData<String> grade = new MutableLiveData<>(""); | 168 | public MutableLiveData<String> grade = new MutableLiveData<>(""); |
168 | public void setGrade(String value) { | 169 | public void setGrade(String value) { |
169 | grade.setValue(value); | 170 | grade.setValue(value); |
170 | } | 171 | } |
171 | 172 | ||
172 | public MutableLiveData<String> term = new MutableLiveData<>(""); | 173 | public MutableLiveData<String> term = new MutableLiveData<>(""); |
173 | public void setTerm(String value) { | 174 | public void setTerm(String value) { |
174 | term.setValue(value); | 175 | term.setValue(value); |
175 | } | 176 | } |
176 | 177 | ||
177 | //0:全部, 1: 已反馈, 2:未反馈 | 178 | //0:全部, 1: 已反馈, 2:未反馈 |
178 | public MutableLiveData<Integer> feedback = new MutableLiveData<>(0); | 179 | public MutableLiveData<Integer> feedback = new MutableLiveData<>(0); |
179 | public void setFeedback(int value) { | 180 | public void setFeedback(int value) { |
180 | feedback.setValue(value); | 181 | feedback.setValue(value); |
181 | } | 182 | } |
182 | } | 183 | } |
183 | } | 184 | } |
184 | 185 |
app/src/main/java/com/hjx/parent/adapter/HomeworkListAdapter.java
File was created | 1 | package com.hjx.parent.adapter; | |
2 | |||
3 | import android.view.View; | ||
4 | import android.widget.TextView; | ||
5 | |||
6 | import androidx.annotation.NonNull; | ||
7 | |||
8 | import com.chad.library.adapter.base.BaseQuickAdapter; | ||
9 | import com.chad.library.adapter.base.BaseViewHolder; | ||
10 | import com.hjx.parent.R; | ||
11 | import com.prws.common.bean.homework.HomeworkList; | ||
12 | |||
13 | public class HomeworkListAdapter extends BaseQuickAdapter<HomeworkList, BaseViewHolder> { | ||
14 | |||
15 | public HomeworkListAdapter() { | ||
16 | super(R.layout.item_homework_list); | ||
17 | } | ||
18 | |||
19 | @Override | ||
20 | protected void convert(@NonNull BaseViewHolder helper, HomeworkList homework) { | ||
21 | helper.setGone(R.id.tvFlag, homework.getRight() != null); | ||
22 | helper.setText(R.id.tvName, homework.getName()); | ||
23 | helper.setText(R.id.tvGrade, homework.getGrade() + "-" + homework.getTerm()); | ||
24 | int subjectImg; | ||
25 | switch (homework.getSubject()) { | ||
26 | case "语文": | ||
27 | subjectImg = R.drawable.ic_chinese; | ||
28 | break; | ||
29 | case "英语": | ||
30 | subjectImg = R.drawable.ic_english; | ||
31 | break; | ||
32 | case "物理": | ||
33 | subjectImg = R.drawable.ic_physics; | ||
34 | break; | ||
35 | case "化学": | ||
36 | subjectImg = R.drawable.ic_chemistry; | ||
37 | break; | ||
38 | case "数学": | ||
39 | default: | ||
40 | subjectImg = R.drawable.ic_math; | ||
41 | } | ||
42 | helper.setImageResource(R.id.ivSubject, subjectImg); | ||
43 | |||
44 | TextView tvDate = helper.getView(R.id.tvDate); | ||
45 | int index = getData().indexOf(homework); | ||
46 | if (index == 0) { | ||
47 | tvDate.setVisibility(View.VISIBLE); | ||
48 | } else if (!homework.getFormatTime().equals(getData().get(index - 1).getFormatTime())) { | ||
49 | tvDate.setVisibility(View.VISIBLE); | ||
50 | } else { | ||
51 | tvDate.setVisibility(View.GONE); | ||
52 | } | ||
53 | tvDate.setText(homework.getFormatTime()); | ||
54 | } | ||
55 | } | ||
56 |
app/src/main/res/drawable/bg_homework_feedback_flag.xml
File was created | 1 | <?xml version="1.0" encoding="utf-8"?> | |
2 | <shape xmlns:android="http://schemas.android.com/apk/res/android"> | ||
3 | <corners android:topRightRadius="10dp" android:bottomLeftRadius="10dp"/> | ||
4 | <solid android:color="#1C90F3"/> | ||
5 | </shape> |
app/src/main/res/drawable/svg_delete.xml
File was created | 1 | <vector xmlns:android="http://schemas.android.com/apk/res/android" | |
2 | android:width="15dp" | ||
3 | android:height="15dp" | ||
4 | android:viewportWidth="1024" | ||
5 | android:viewportHeight="1024"> | ||
6 | <path | ||
7 | android:pathData="M693.5,231.7c33.9,4.8 69.3,-1.4 97,3.3 44.9,7.6 67.6,45.8 62.7,102 -18.1,0 -36.2,0 -54.3,0 -1.5,99.7 -0.8,198.4 -0.8,298.4 0,50.5 4.2,103.5 -0.8,148.8 -4.8,42.8 -36.1,68.8 -74.4,75.2 -37.8,6.3 -87.9,1.7 -129.6,1.7 -87.4,0 -176,1.7 -261.6,0 -41.7,-0.8 -72.5,-14.1 -91.1,-39.3 -18.7,-25.2 -16.7,-63.4 -16.7,-108.7 0,-126.1 0,-251.2 0,-376.2 -17.3,0 -34.6,0 -51.8,0 -8.4,-51.7 14,-88.8 51.8,-101.1 27.8,-9 64.9,-1.7 104.5,-4.2 -3.2,-55.6 -0.2,-97.9 47.6,-103.7 21.4,-2.6 49.9,0 76.1,0 47.1,0 101.7,0 152.1,0 29,0 58.7,-2.8 73.6,10C698.2,155.9 692.8,196.8 693.5,231.7zM380.1,183.3c0,16.7 0,33.4 0,50.2 87.2,0 174.4,0 261.6,0 0,-17.6 0,-35.1 0,-52.7 -86.9,0 -173.9,0 -260.8,0C379.9,180.9 380,182.1 380.1,183.3zM329.1,342.9c0,105.8 0,211.1 0,318.5 0,27.2 -6.3,85.2 10,97 6.5,4.7 23.2,5.4 30.9,0 16.8,-11.7 10.9,-68 10.9,-96.1 0,-108.7 0,-218.9 0,-321.8 -17,0 -34,0 -51,0C328.9,340.6 329,341.7 329.1,342.9zM484.5,342.9c0,95.2 0,206.4 0,308.4 0,24.3 -5.7,81.9 4.2,98.6 6.5,11 28.4,16 39.3,7.5 14.8,-11.5 8.4,-72.5 8.4,-97.8 0,-109 0,-213.6 0,-319.3 -17,0 -34,0 -51,0C484.4,340.6 484.5,341.7 484.5,342.9zM641.7,342.9c0,102.5 0,216.6 0,322.7 0,33 -6.4,83.7 15,92.8 9.4,3.9 26,0.9 30.1,-2.5 14,-11.5 7.5,-73.5 7.5,-97.8 0,-108.4 0,-212.4 0,-317.6 -17.3,0 -34.6,0 -51.8,0C641.6,340.6 641.6,341.7 641.7,342.9z" | ||
8 | android:fillColor="#272636"/> | ||
9 | </vector> | ||
10 |
app/src/main/res/drawable/svg_go_detail.xml
File was created | 1 | <vector xmlns:android="http://schemas.android.com/apk/res/android" | |
2 | android:width="10dp" | ||
3 | android:height="10dp" | ||
4 | android:viewportWidth="20" | ||
5 | android:viewportHeight="20"> | ||
6 | <path | ||
7 | android:pathData="M10,0C15.523,0 20,4.477 20,10C20,15.523 15.523,20 10,20C4.477,20 0,15.523 0,10C0,4.477 4.477,0 10,0Z" | ||
8 | android:fillColor="#C5C5C5" | ||
9 | android:fillType="evenOdd"/> | ||
10 | <path | ||
11 | android:pathData="M7.156,3.832C7.625,3.363 8.387,3.363 8.856,3.832L13.572,8.607C13.596,8.627 13.627,8.635 13.649,8.658C13.888,8.896 14.003,9.21 13.999,9.522C14.003,9.834 13.888,10.148 13.649,10.386C13.627,10.409 13.596,10.417 13.572,10.437L8.896,15.172C8.426,15.641 7.665,15.641 7.195,15.172C6.726,14.702 6.726,13.941 7.195,13.471L11.095,9.522L7.156,5.533C6.686,5.064 6.686,4.302 7.156,3.832Z" | ||
12 | android:fillColor="#FFFFFF" | ||
13 | android:fillType="evenOdd"/> | ||
14 | </vector> | ||
15 |
app/src/main/res/layout/item_homework_list.xml
File was created | 1 | <?xml version="1.0" encoding="utf-8"?> | |
2 | <LinearLayout | ||
3 | xmlns:android="http://schemas.android.com/apk/res/android" | ||
4 | xmlns:app="http://schemas.android.com/apk/res-auto" | ||
5 | xmlns:tools="http://schemas.android.com/tools" | ||
6 | android:orientation="vertical" | ||
7 | android:paddingHorizontal="10dp" | ||
8 | android:layout_marginVertical="8dp" | ||
9 | android:layout_width="match_parent" | ||
10 | android:layout_height="wrap_content" | ||
11 | tools:ignore="SmallSp,HardcodedText"> | ||
12 | |||
13 | <TextView | ||
14 | android:id="@+id/tvDate" | ||
15 | android:visibility="gone" | ||
16 | tools:visibility="visible" | ||
17 | tools:text="2024-09-25" | ||
18 | android:textSize="12sp" | ||
19 | android:textColor="#999" | ||
20 | android:layout_marginBottom="15dp" | ||
21 | android:layout_width="wrap_content" | ||
22 | android:layout_height="wrap_content"/> | ||
23 | |||
24 | <FrameLayout | ||
25 | android:background="@drawable/shape_radius_10" | ||
26 | android:backgroundTint="@color/white" | ||
27 | android:layout_width="match_parent" | ||
28 | android:layout_height="75dp"> | ||
29 | <LinearLayout | ||
30 | android:orientation="horizontal" | ||
31 | android:gravity="center_vertical" | ||
32 | android:layout_width="match_parent" | ||
33 | android:layout_height="match_parent"> | ||
34 | <ImageView | ||
35 | android:id="@+id/ivSubject" | ||
36 | tools:src="@drawable/ic_math" | ||
37 | android:layout_marginStart="10dp" | ||
38 | android:layout_width="44dp" | ||
39 | android:layout_height="56dp" | ||
40 | android:importantForAccessibility="no" /> | ||
41 | <LinearLayout | ||
42 | android:orientation="vertical" | ||
43 | android:layout_marginStart="14dp" | ||
44 | android:layout_marginEnd="10dp" | ||
45 | android:layout_marginVertical="16dp" | ||
46 | android:layout_width="match_parent" | ||
47 | android:layout_height="match_parent"> | ||
48 | <TextView | ||
49 | android:id="@+id/tvName" | ||
50 | tools:text="作业名称" | ||
51 | android:textSize="13sp" | ||
52 | android:textColor="#333" | ||
53 | android:layout_width="wrap_content" | ||
54 | android:layout_height="wrap_content"/> | ||
55 | <Space style="@style/empty_space"/> | ||
56 | <LinearLayout | ||
57 | android:orientation="horizontal" | ||
58 | android:gravity="center_vertical" | ||
59 | android:layout_width="match_parent" | ||
60 | android:layout_height="wrap_content"> | ||
61 | <TextView | ||
62 | android:id="@+id/tvGrade" | ||
63 | tools:text="七年级-上学期" | ||
64 | android:textSize="10sp" | ||
65 | android:textColor="#666" | ||
66 | android:layout_width="wrap_content" | ||
67 | android:layout_height="wrap_content" /> | ||
68 | <Space style="@style/empty_space"/> | ||
69 | <androidx.appcompat.widget.AppCompatTextView | ||
70 | android:text="删除" | ||
71 | android:textSize="10sp" | ||
72 | android:textColor="#666" | ||
73 | android:gravity="center_vertical" | ||
74 | android:drawableStart="@drawable/svg_delete" | ||
75 | android:drawableTint="#C5C5C5" | ||
76 | android:drawablePadding="2dp" | ||
77 | android:layout_width="wrap_content" | ||
78 | android:layout_height="wrap_content"/> | ||
79 | <View | ||
80 | android:background="#F5F5F5" | ||
81 | android:layout_marginHorizontal="15dp" | ||
82 | android:layout_width="1dp" | ||
83 | android:layout_height="10dp"/> | ||
84 | <androidx.appcompat.widget.AppCompatTextView | ||
85 | android:text="详情" | ||
86 | android:textSize="10sp" | ||
87 | android:textColor="#666" | ||
88 | android:gravity="center_vertical" | ||
89 | android:drawableStart="@drawable/svg_go_detail" | ||
90 | android:drawablePadding="5dp" | ||
91 | android:layout_width="wrap_content" | ||
92 | android:layout_height="wrap_content"/> | ||
93 | </LinearLayout> | ||
94 | </LinearLayout> | ||
95 | </LinearLayout> | ||
96 | <TextView | ||
97 | android:id="@+id/tvFlag" | ||
98 | android:text="已反馈" | ||
99 | android:textSize="9sp" | ||
100 | android:textColor="@color/white" | ||
101 | android:background="@drawable/bg_homework_feedback_flag" | ||
102 | android:layout_gravity="end" | ||
103 | android:paddingHorizontal="7dp" | ||
104 | android:paddingVertical="2dp" | ||
105 | android:layout_width="wrap_content" | ||
106 | android:layout_height="wrap_content" /> | ||
107 | </FrameLayout> | ||
108 | |||
109 | </LinearLayout> |