diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java
index 1ec5e3cf25..7dfbeb6d43 100644
--- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java
+++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java
@@ -50,6 +50,7 @@ import com.gh.common.util.PlatformUtils;
import com.gh.common.util.ReservationHelper;
import com.gh.common.view.DownloadButton;
import com.gh.common.view.GameIconView;
+import com.gh.common.view.NoEllipsizeSpaceTextView;
import com.gh.download.DownloadManager;
import com.gh.download.dialog.DownloadDialog;
import com.gh.gamecenter.DownloadManagerActivity;
@@ -784,7 +785,7 @@ public class BindingAdapters {
}
}
- public static void setGameName(TextView view, GameEntity game, boolean isShowPlatform, @Nullable Boolean isShowSuffix) {
+ public static void setGameName(NoEllipsizeSpaceTextView view, GameEntity game, boolean isShowPlatform, @Nullable Boolean isShowSuffix) {
if (isShowSuffix == null) isShowSuffix = true; // 默认显示
if (isShowPlatform && game.getApk().size() > 0) {
view.setText(String.format("%s - %s", !isShowSuffix ? game.getNameWithoutSuffix() : game.getName(),
diff --git a/app/src/main/java/com/gh/common/view/NoEllipsizeSpaceTextView.kt b/app/src/main/java/com/gh/common/view/NoEllipsizeSpaceTextView.kt
new file mode 100644
index 0000000000..d46b1ede37
--- /dev/null
+++ b/app/src/main/java/com/gh/common/view/NoEllipsizeSpaceTextView.kt
@@ -0,0 +1,38 @@
+package com.gh.common.view
+
+import android.content.Context
+import android.util.AttributeSet
+import androidx.appcompat.widget.AppCompatTextView
+
+/**
+ * 去除省略号后面空白的TextView
+ */
+class NoEllipsizeSpaceTextView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) :
+ AppCompatTextView(context, attrs, defStyleAttr) {
+ override fun setText(text: CharSequence?, type: BufferType?) {
+ super.setText(text, type)
+ post {
+ if (layout != null) {
+ val rawText = layout.text.toString()
+ if (rawText.contains(ELLIPSIS_NORMAL)) {
+ val index = rawText.indexOf(ELLIPSIS_BLANK)
+ var trimText = rawText
+ if (index > 0) {
+ trimText = rawText.substring(0, index)
+ }
+ trimText = rawText.substring(0, trimText.length - 1) + ELLIPSIS_NORMAL
+ setText(trimText)
+ }
+ }
+ }
+ }
+
+ companion object {
+ private const val ELLIPSIS_NORMAL = "\u2026" // 省略号字符(...)
+ private const val ELLIPSIS_BLANK = "\uFEFF" // 空白字符
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java
index 348772b08c..7da9515237 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java
@@ -13,6 +13,7 @@ import com.airbnb.lottie.LottieAnimationView;
import com.facebook.drawee.view.SimpleDraweeView;
import com.gh.common.view.DownloadButton;
import com.gh.common.view.GameIconView;
+import com.gh.common.view.NoEllipsizeSpaceTextView;
import com.gh.gamecenter.R;
import com.gh.gamecenter.common.utils.ExtensionsKt;
import com.gh.gamecenter.common.view.DrawableView;
@@ -23,7 +24,7 @@ import com.gh.gamecenter.entity.GameEntity;
public class GameViewHolder extends RecyclerView.ViewHolder {
public GameIconView gameThumb;
- public TextView gameName;
+ public NoEllipsizeSpaceTextView gameName;
public DownloadButton gameDownloadBtn;
public TextView gameDes;
public LinearLayout gameLabelList;
diff --git a/app/src/main/java/com/gh/gamecenter/game/vertical/GameItemUi.kt b/app/src/main/java/com/gh/gamecenter/game/vertical/GameItemUi.kt
index eca68f1207..c7e48cf73a 100644
--- a/app/src/main/java/com/gh/gamecenter/game/vertical/GameItemUi.kt
+++ b/app/src/main/java/com/gh/gamecenter/game/vertical/GameItemUi.kt
@@ -18,6 +18,7 @@ import com.airbnb.lottie.LottieDrawable
import com.facebook.drawee.view.SimpleDraweeView
import com.gh.common.view.DownloadButton
import com.gh.common.view.GameIconView
+import com.gh.common.view.NoEllipsizeSpaceTextView
import com.gh.gamecenter.R
import com.gh.gamecenter.common.utils.setDrawableEnd
import com.gh.gamecenter.common.view.GameTagContainerView
@@ -45,7 +46,7 @@ import splitties.views.startPadding
class GameItemUi(override val ctx: Context) : Ui {
var iconIv: GameIconView
- var gameNameTv: TextView
+ var gameNameTv: NoEllipsizeSpaceTextView
var gameSubtitleTv: TextView
var adLabelTv: TextView
var downloadTv: DownloadButton
@@ -182,7 +183,7 @@ class GameItemUi(override val ctx: Context) : Ui {
}
}
- private fun initGameNameTv() = textView {
+ private fun initGameNameTv() = NoEllipsizeSpaceTextView(ctx).apply {
id = R.id.game_name
setSingleLine()
includeFontPadding = false
diff --git a/app/src/main/res/layout/amway_comment_item.xml b/app/src/main/res/layout/amway_comment_item.xml
index 7fb486518a..7f9c0eb504 100644
--- a/app/src/main/res/layout/amway_comment_item.xml
+++ b/app/src/main/res/layout/amway_comment_item.xml
@@ -36,7 +36,7 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
-
-
-
-
-
-
-
-
-
-
-
-
-