You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免TextView中长文本换行且不破坏CardView内边距

解决CardView内长文本自动换行问题

针对你遇到的问题,这里提供几个可行的解决方案,既能阻止文本换行,又能保留CardView的内部间距:

方案1:强制TextView单行显示

给需要避免换行的TextView添加以下属性,让文本保持单行,不会自动换行:

android:maxLines="1"
android:ellipsize="none"
  • 如果允许文本超出CardView范围,就用ellipsize="none";
  • 如果希望超出部分显示省略号,把ellipsize改为end即可。

方案2:让CardView适配文本宽度

如果你希望CardView能根据文本长度调整宽度(避免文本被压缩换行),同时保证最小宽度防止过度收缩,可以修改CardView的宽度设置:

<com.google.android.material.card.MaterialCardView
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_margin="5dp"
    android:minWidth="200dp" <!-- 根据需求调整最小宽度 -->
    android:backgroundTint="@color/grey"
    android:orientation="vertical"
    app:cardCornerRadius="40dp">

同时给外层的横向LinearLayout添加android:gravity="center",让CardView居中显示,这样既保留了内部的50dp padding,又能让CardView适配文本宽度,避免换行。

额外优化:简化布局嵌套

你的布局存在多余的嵌套层级,可以直接把CardView的padding设置拆分,替换掉内部的LinearLayout,减少布局复杂度:

<com.google.android.material.card.MaterialCardView
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_margin="5dp"
    android:layout_weight="1"
    android:backgroundTint="@color/grey"
    android:paddingTop="50dp"
    android:paddingBottom="100dp" <!-- 给底部ProgressBar预留空间 -->
    android:paddingStart="50dp"
    android:paddingEnd="50dp"
    android:orientation="vertical"
    app:cardCornerRadius="40dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Masculinity"
        android:textColor="@color/white"
        android:textSize="15sp"
        android:textStyle="bold"
        android:maxLines="1"
        android:ellipsize="none"/>

    <TextView
        android:id="@+id/masculinity_score"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="start"
        android:textColor="@color/white"
        android:textSize="50sp"
        android:textStyle="bold"/>

    <ProgressBar
        android:id="@+id/masculinity_score_progress_bar"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:layout_width="match_parent"
        android:layout_height="10dp"
        android:layout_marginStart="15dp"
        android:layout_marginEnd="15dp"
        android:layout_marginBottom="35dp"
        android:max="100"/>
</com.google.android.material.card.MaterialCardView>

内容的提问来源于stack exchange,提问作者Player91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 21:58:09