From e3d4aa66f9f9fbfb5e1f0f479768c598b4bda589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E5=AD=90=E7=BB=B4?= Date: Wed, 1 Feb 2023 16:46:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E3=80=90=E5=85=89=E7=8E=AF=E5=8A=A9?= =?UTF-8?q?=E6=89=8B=E3=80=91=E5=A4=9A=E7=89=88=E6=9C=AC=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF-=E7=89=88=E6=9C=AC=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98=20https://jira.shanqu.cc/b?= =?UTF-8?q?rowse/GHZS-1064?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/DialogUtils.java | 6 ++-- app/src/main/res/layout/imprint_dialog.xml | 4 +-- .../common/view/MaxHeightLinearLayout.kt | 31 +++++++++++++++++++ 3 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightLinearLayout.kt diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 91ecf1fdfb..35315ae185 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -59,7 +59,7 @@ import com.gh.gamecenter.common.utils.NetworkUtils; import com.gh.gamecenter.common.view.CustomLinkMovementMethod; import com.gh.gamecenter.common.view.DrawableView; import com.gh.gamecenter.common.view.FixLinearLayoutManager; -import com.gh.gamecenter.common.view.LimitHeightLinearLayout; +import com.gh.gamecenter.common.view.MaxHeightLinearLayout; import com.gh.gamecenter.common.view.MaxHeightNestedScrollView; import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.gamecenter.core.AppExecutor; @@ -809,8 +809,8 @@ public class DialogUtils { ((TextView) inflate.findViewById(R.id.imprint_title)).setText(titleName); View head = LayoutInflater.from(context).inflate(R.layout.imprint_content_item, null); content.addView(head, LinearLayout.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(30)); - LimitHeightLinearLayout imprintContainer = inflate.findViewById(R.id.imprint_container); - imprintContainer.setLimitHeight((int) (context.getResources().getDisplayMetrics().heightPixels * 0.8)); + MaxHeightLinearLayout imprintContainer = inflate.findViewById(R.id.imprint_container); + imprintContainer.setMaxHeight((int) (context.getResources().getDisplayMetrics().heightPixels * 0.8)); ArrayList list = gameEntity.getApk(); SettingsEntity settings = Config.getSettings(); diff --git a/app/src/main/res/layout/imprint_dialog.xml b/app/src/main/res/layout/imprint_dialog.xml index d2ba950f2e..33f89575c5 100644 --- a/app/src/main/res/layout/imprint_dialog.xml +++ b/app/src/main/res/layout/imprint_dialog.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightLinearLayout.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightLinearLayout.kt new file mode 100644 index 0000000000..b422c056a4 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightLinearLayout.kt @@ -0,0 +1,31 @@ +package com.gh.gamecenter.common.view + +import android.content.Context +import android.util.AttributeSet +import android.widget.LinearLayout + +class MaxHeightLinearLayout @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : LinearLayout(context, attrs, defStyleAttr) { + private var mMaxHeight = 0 + + override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { + val heightMode = MeasureSpec.getMode(heightMeasureSpec) + var heightSize = MeasureSpec.getSize(heightMeasureSpec) + if (mMaxHeight != 0 && (heightMode == MeasureSpec.EXACTLY || heightMode == MeasureSpec.AT_MOST || heightMode == MeasureSpec.UNSPECIFIED)) { + heightSize = heightSize.coerceAtMost(mMaxHeight) + } + val maxHeightMeasureSpec = MeasureSpec.makeMeasureSpec( + heightSize, + heightMode + ) + super.onMeasure(widthMeasureSpec, maxHeightMeasureSpec) + } + + fun setMaxHeight(maxHeight: Int) { + mMaxHeight = maxHeight + requestLayout() + } +}