From 8684539793dd0213a0c98644369fa9cfdf73a3fc Mon Sep 17 00:00:00 2001 From: wushaocheng <15876365887@163.com> Date: Fri, 17 Feb 2023 09:30:40 +0800 Subject: [PATCH] =?UTF-8?q?[Modify]=E6=A0=87=E7=AD=BE=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/bean/UserLabelInfo.kt | 4 +- library/build.gradle | 3 + .../widget/LinesFlexBoxLayoutManager.java | 56 +++++++++++++++++++ 3 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 library/src/module_common/java/com/yizhuan/xchat_android_library/common/widget/LinesFlexBoxLayoutManager.java diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelInfo.kt b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelInfo.kt index 2fae6d396..409369896 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelInfo.kt +++ b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelInfo.kt @@ -5,8 +5,8 @@ import java.io.Serializable @Data data class UserLabelInfo( - val config: List, - val meLabels: List + val config: List ?= null, + val meLabels: List ?= null ) : Serializable diff --git a/library/build.gradle b/library/build.gradle index f73299725..435e15655 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -134,6 +134,9 @@ dependencies { api "jp.wasabeef:glide-transformations:${GlideTransformationsVersion}" + //流式布局 + api 'com.google.android.flexbox:flexbox:3.0.0' + } repositories { mavenCentral() diff --git a/library/src/module_common/java/com/yizhuan/xchat_android_library/common/widget/LinesFlexBoxLayoutManager.java b/library/src/module_common/java/com/yizhuan/xchat_android_library/common/widget/LinesFlexBoxLayoutManager.java new file mode 100644 index 000000000..9e0ed987b --- /dev/null +++ b/library/src/module_common/java/com/yizhuan/xchat_android_library/common/widget/LinesFlexBoxLayoutManager.java @@ -0,0 +1,56 @@ +package com.yizhuan.xchat_android_library.common.widget; + +import android.content.Context; + +import com.google.android.flexbox.FlexLine; +import com.google.android.flexbox.FlexboxLayoutManager; + +import java.util.List; + +/** + * author: wushaocheng + * time: 2022/2/17 + * desc: 一行显示FlexBoxManager + */ +public class LinesFlexBoxLayoutManager extends FlexboxLayoutManager { + + /** + * 最大行数 + * + * 小于等于0时,不限制行数 + */ + private int maxLines = 0; + + /** + * 设置最大显示行数 + * @param maxLines + */ + public void setMaxLines(int maxLines) { + this.maxLines = maxLines; + } + + public LinesFlexBoxLayoutManager(Context context) { + super(context); + } + + public LinesFlexBoxLayoutManager(Context context, int flexDirection) { + super(context, flexDirection); + } + + public LinesFlexBoxLayoutManager(Context context, int flexDirection, int flexWrap) { + super(context, flexDirection, flexWrap); + } + + /** + * 删掉多余的行数据 + */ + @Override + public List getFlexLinesInternal() { + List flexLines = super.getFlexLinesInternal(); + int size = flexLines.size(); + if (maxLines > 0 && size > maxLines) { + flexLines.subList(maxLines, size).clear(); + } + return flexLines; + } +}