Material Button Toggle Group按钮多行显示问题咨询
方案1:自定义按钮样式开启多行支持
在res/values/styles.xml中创建支持多行的Material Button样式:
<style name="MultilineToggleButton" parent="Widget.MaterialComponents.Button.OutlinedButton"> <item name="android:singleLine">false</item> <item name="android:maxLines">2</item> <!-- 根据需求设置最大行数 --> <item name="android:breakStrategy">simple</item> <item name="android:gravity">center</item> <!-- 可选,让文本居中对齐 --> </style>
在布局文件的MaterialButton中应用该样式,同时保持字符串资源的换行写法:
<!-- 字符串资源 res/values/strings.xml --> <string name="sedentary">Sedentary\n(no exercises)</string> <!-- 布局中的MaterialButton --> <com.google.android.material.button.MaterialButton android:id="@+id/btn_sedentary" style="@style/MultilineToggleButton" android:text="@string/sedentary" android:layout_width="wrap_content" android:layout_height="wrap_content" />
方案2:直接在控件中设置多行属性
如果不想单独定义样式,可直接在MaterialButton标签内添加多行相关属性:
<com.google.android.material.button.MaterialButton android:id="@+id/btn_sedentary" android:text="@string/sedentary" android:singleLine="false" android:maxLines="2" android:breakStrategy="simple" android:gravity="center" style="@style/Widget.MaterialComponents.Button.OutlinedButton" android:layout_width="wrap_content" android:layout_height="wrap_content" />
额外优化:调整行间距(可选)
如果换行后行间距过密,可添加行间距属性优化显示效果:
<item name="android:lineSpacingExtra">4dp</item> <!-- 在样式中添加 --> <!-- 或直接在控件中添加 --> android:lineSpacingExtra="4dp"
注意:确保按钮的宽度设置合理(如wrap_content或固定宽度),避免文本因空间不足被强制单行显示。
内容的提问来源于stack exchange,提问作者Celeste
相关产品推荐
相关产品推荐

