Commit 1863fd36a12853cb392ea6dbffc1ede9f4fa31f9

Authored by shixianjie
1 parent d34cc18f6a
Exists in master

作业列表布局修改

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>