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() + } +}