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

如何强制Material Button将文本换行至两行显示?

解决Material Button文本强制换行至第二行(wrap_content宽度)

针对你的需求,核心问题是Material Button内部的TextView默认带有单行限制,导致你设置的多行属性不生效,以下是无需手动计算换行的解决方案:

关键属性调整

除了你已设置的属性,必须添加android:singleLine="false"——这个属性会覆盖默认的单行强制规则,让maxLines等属性真正生效。同时可以配合换行策略属性,让文本更主动地换行:

<com.google.android.material.button.MaterialButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="需要换行的较长文本内容"
    android:maxLines="2"
    android:lines="2"
    android:singleLine="false" <!-- 核心:解除单行强制限制 -->
    android:ellipsize="none"
    android:inputType="textMultiLine"
    app:breakStrategy="simple" <!-- 宽松换行策略,避免文本强行挤在一行 -->
    android:minWidth="48dp" <!-- 可选:限制最小宽度,避免按钮过宽导致不换行 -->
    />

为什么之前的设置无效?

Material Button的默认样式中,内部TextView隐式启用了singleLine="true",这个属性优先级高于maxLines,所以即使你设置了多行相关属性,文本依然会被强制单行并显示省略号。显式设置singleLine="false"才能解除这个限制。

额外排查点

  • 确认父布局没有给按钮设置强制宽度(比如match_parent),保证按钮宽度确实是wrap_content
  • 如果使用了自定义主题,检查主题中是否覆盖了android:singleLine或android:maxLines的默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:52:04