diff --git a/app/src/main/java/com/gh/common/view/ExpandTextView.java b/app/src/main/java/com/gh/common/view/ExpandTextView.java index 37075dc3a5..9ef5d7bab4 100644 --- a/app/src/main/java/com/gh/common/view/ExpandTextView.java +++ b/app/src/main/java/com/gh/common/view/ExpandTextView.java @@ -12,7 +12,6 @@ import android.text.style.ClickableSpan; import android.util.AttributeSet; import android.view.View; -import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; import androidx.appcompat.widget.AppCompatTextView; @@ -91,6 +90,7 @@ public class ExpandTextView extends AppCompatTextView { private void showExpandButton() { String finalEndText = ""; + TextPaint paint = getPaint(); Layout layout = getLayout(); int start = layout.getLineStart(0); @@ -101,12 +101,10 @@ public class ExpandTextView extends AppCompatTextView { int viewWidth = getWidth() - getPaddingRight() - getPaddingLeft(); int additionalEndTextCount = 0; - TextPaint paint = getPaint(); float expandTextWidth; if (mUseGradientAlphaEndText) { additionalEndTextCount = DEFAULT_ADDITIONAL_END_TEXT_COUNT; - // 如果不加多个空格的话有可能算不对,惊了,明明是同样的 paint 同样的文字,长度却会略有不同 - expandTextWidth = paint.measureText(mEndText + mExpandText + " "); + expandTextWidth = paint.measureText(mEndText + mExpandText); } else { expandTextWidth = paint.measureText(mExpandText); } @@ -128,7 +126,7 @@ public class ExpandTextView extends AppCompatTextView { for (int i = lastText.length() - 1; i > 0; i--) { CharSequence sequence = lastText.subSequence(0, i); float w = paint.measureText(sequence.toString()); - if (viewWidth - w - DisplayUtils.dip2px(5) > expandTextWidth) { + if (viewWidth - w > expandTextWidth) { if (mUseGradientAlphaEndText) { finalEndText = lastText.subSequence(i - additionalEndTextCount, i) + mEndText; finalEndText = finalEndText.replace("\n", ""); @@ -195,7 +193,8 @@ public class ExpandTextView extends AppCompatTextView { int heightBetweenLastVisibleLineRectAndLastActualLineRect = (mLastActualLineRect.bottom - mLastVisibleLineRect.bottom); if (getMeasuredHeight() == getLayout().getHeight() - heightBetweenLastVisibleLineRectAndLastActualLineRect) { - result = mLastVisibleLineRect.bottom - (lastVisibleLineBaseline + layout.getPaint().getFontMetricsInt().descent + getPaddingBottom()); + result = mLastVisibleLineRect.bottom - (lastVisibleLineBaseline + layout.getPaint() + .getFontMetricsInt().descent + getPaddingBottom()); if (getLineSpacingExtra() > result) { result = 0; } else { diff --git a/app/src/main/res/layout/gamedetail_item_custom_column.xml b/app/src/main/res/layout/gamedetail_item_custom_column.xml index b8d3147935..1d293ea086 100644 --- a/app/src/main/res/layout/gamedetail_item_custom_column.xml +++ b/app/src/main/res/layout/gamedetail_item_custom_column.xml @@ -233,6 +233,7 @@ goneIf="@{customColumn.infoTag == null || customColumn.infoTag.size() == 0}" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginTop="4dp" app:layout_constraintTop_toBottomOf="@id/contentTv" />