فهرست منبع

修改老师端个人主页多个声部换行显示的UI问题

Pq 11 ماه پیش
والد
کامیت
e024f9c4ca

+ 2 - 0
BaseLibrary/build.gradle

@@ -209,6 +209,8 @@ dependencies {
     //lite 版本修改为
     api 'com.qcloud.cos:cos-android-lite-nobeacon:5.9.16'
 
+    api "com.hyman:flowlayout-lib:1.1.2"
+
     compileOnly files('libs/emoji-ios-release.aar')
     compileOnly files('libs/emoji-release.aar')
     compileOnly files('libs/filedownload-1.0.0.aar')

+ 21 - 20
teacher/src/main/java/com/cooleshow/teacher/ui/homepage/HomePageActivity.java

@@ -34,8 +34,11 @@ import com.cooleshow.usercenter.helper.UserHelper;
 import com.google.android.material.appbar.AppBarLayout;
 import com.google.android.material.tabs.TabLayout;
 import com.google.android.material.tabs.TabLayoutMediator;
+import com.zhy.view.flowlayout.FlowLayout;
+import com.zhy.view.flowlayout.TagAdapter;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 
 import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
@@ -55,6 +58,7 @@ public class HomePageActivity extends BaseMVPActivity<ActivityHomePageLayoutBind
     private int titleStyleMode = 1;//根据折叠展开状态控制title样式
 
     private AppBarLayoutStateChangeListener.State lastState = AppBarLayoutStateChangeListener.State.EXPANDED;
+    private TagAdapter mTagAdapter;
 
     @Override
     protected void initView() {
@@ -119,6 +123,15 @@ public class HomePageActivity extends BaseMVPActivity<ActivityHomePageLayoutBind
     @Override
     public void initData() {
         super.initData();
+        mTagAdapter = new TagAdapter<String>(subjectNames) {
+            @Override
+            public View getView(FlowLayout parent, int position, String s) {
+                View subjectView = createSubjectView(parent, s);
+                return subjectView;
+            }
+        };
+        viewBinding.llSubjectContainer.setAdapter(mTagAdapter);
+
         TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(viewBinding.tabLayout, viewBinding.viewPager, new TabLayoutMediator.TabConfigurationStrategy() {
             @Override
             public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
@@ -264,14 +277,9 @@ public class HomePageActivity extends BaseMVPActivity<ActivityHomePageLayoutBind
         viewBinding.tvNickname.setText(info.username);
         //subjectName
         try {
-            viewBinding.llSubjectContainer.removeAllViews();
-            viewBinding.llSubjectContainer2.removeAllViews();
-            String[] subjectNames = UiUtils.splitSubjectName(info.subjectName);
-            if (subjectNames != null && subjectNames.length > 0) {
-                for (int i = 0; i < subjectNames.length; i++) {
-                    createSubjectView(subjectNames[i]);
-                }
-            }
+            subjectNames.clear();
+            subjectNames.addAll(Arrays.asList(UiUtils.splitSubjectName(info.subjectName)));
+            mTagAdapter.notifyDataChanged();
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -316,20 +324,13 @@ public class HomePageActivity extends BaseMVPActivity<ActivityHomePageLayoutBind
         }
     }
 
-    private void createSubjectView(String text) {
-        TextView textView = (TextView) LayoutInflater.from(this).inflate(com.cooleshow.base.R.layout.view_subject_item_layout, viewBinding.llSubjectContainer, false);
+    private ArrayList<String> subjectNames = new ArrayList<>();
+
+    private View createSubjectView(ViewGroup viewGroup, String text) {
+        TextView textView = (TextView) LayoutInflater.from(this).inflate(R.layout.view_homepage_subject_item_layout, viewGroup, false);
         textView.setText(text);
         textView.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_2dc7aa));
         textView.setBackgroundResource(com.cooleshow.base.R.drawable.shape_effbf9_9dp);
-        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-        if (viewBinding.llSubjectContainer.getChildCount() < 4) {
-            if (viewBinding.llSubjectContainer.getChildCount() >= 1) {
-                params.setMargins(SizeUtils.dp2px(4), 0, 0, 0);
-            }
-            viewBinding.llSubjectContainer.addView(textView, params);
-        } else {
-            viewBinding.llSubjectContainer2.addView(textView, params);
-            viewBinding.llSubjectContainer2.setVisibility(View.VISIBLE);
-        }
+        return textView;
     }
 }

+ 4 - 16
teacher/src/main/res/layout/activity_home_page_layout.xml

@@ -262,31 +262,19 @@
                     app:layout_constraintLeft_toLeftOf="@+id/view_top_bg"
                     app:layout_constraintTop_toBottomOf="@+id/tv_badge_title" />
 
-                <LinearLayout
+
+                <com.zhy.view.flowlayout.TagFlowLayout
                     android:id="@+id/ll_subject_container"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginRight="@dimen/dp_30"
                     android:orientation="horizontal"
                     android:paddingStart="10dp"
-                    app:layout_constraintBottom_toBottomOf="@+id/iv_subject"
                     app:layout_constraintLeft_toRightOf="@+id/iv_subject"
                     app:layout_constraintRight_toRightOf="@+id/view_top_bg"
+                    app:max_select="0"
                     app:layout_constraintTop_toTopOf="@+id/iv_subject" />
 
-
-                <LinearLayout
-                    android:id="@+id/ll_subject_container2"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="5dp"
-                    android:orientation="horizontal"
-                    android:visibility="gone"
-                    app:layout_constraintLeft_toLeftOf="@+id/ll_subject_container"
-                    app:layout_constraintRight_toRightOf="@+id/ll_subject_container"
-                    app:layout_constraintTop_toBottomOf="@+id/ll_subject_container" />
-
-
                 <TextView
                     android:id="@+id/tv_fans_title"
                     android:layout_width="58dp"
@@ -301,7 +289,7 @@
                     app:layout_constraintHorizontal_chainStyle="spread_inside"
                     app:layout_constraintLeft_toLeftOf="@+id/view_top_bg"
                     app:layout_constraintRight_toLeftOf="@+id/tv_course_num_completed_title"
-                    app:layout_constraintTop_toBottomOf="@+id/ll_subject_container2" />
+                    app:layout_constraintTop_toBottomOf="@+id/ll_subject_container" />
 
                 <View
                     android:id="@+id/view_fans"

+ 18 - 0
teacher/src/main/res/layout/view_homepage_subject_item_layout.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/tv_course_name"
+    tools:text="单簧管"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:background="@drawable/shape_couse_type_text_bg"
+    android:gravity="center"
+    android:includeFontPadding="false"
+    android:paddingStart="6dp"
+    android:paddingTop="2dp"
+    android:paddingEnd="6dp"
+    android:paddingBottom="2dp"
+    android:layout_marginEnd="4dp"
+    android:layout_marginBottom="5dp"
+    android:textColor="@color/color_ff8c00"
+    android:textSize="@dimen/sp_11" />