Android在MaterialButtonToggleGroup中添加带有多行文本的按钮不会';行不通
我试图在材质按钮切换组中显示多行按钮,但它总是在换行处显示我Android在MaterialButtonToggleGroup中添加带有多行文本的按钮不会';行不通,android,android-button,material-components-android,Android,Android Button,Material Components Android,我试图在材质按钮切换组中显示多行按钮,但它总是在换行处显示我… 但是它在材质按钮到开关组之外工作正常我已经尝试过了 使用\n和&10 将HTML标记与HTML.form方法一起使用 如下图所示,第一个按钮位于材质按钮切换组的外部,但第二个按钮位于其内部。 这是预期结果。您可以检查下面覆盖多行的源代码 您可以通过编程方式进行设置。比如: val button : MaterialButton = findViewById(R.id.add_anyone) button.max
…
但是它在材质按钮到开关组之外工作正常我已经尝试过了
- 使用
和\n
&10代码>
- 将
HTML标记与HTML.form方法一起使用
如下图所示,第一个按钮位于材质按钮切换组的外部,但第二个按钮位于其内部。
这是预期结果。您可以检查下面覆盖多行的源代码 您可以通过编程方式进行设置。比如:
val button : MaterialButton = findViewById(R.id.add_anyone)
button.maxLines = 2
源代码:
供将来参考的另一个技巧:
public class CustomMaterialButtonToggleGroup extends MaterialButtonToggleGroup {
public CustomMaterialButtonToggleGroup(@NonNull Context context) {
super(context);
}
public CustomMaterialButtonToggleGroup(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public CustomMaterialButtonToggleGroup(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void addView(View child, int index, ViewGroup.LayoutParams params) {
super.addView(child, index, params);
if(child instanceof MaterialButton)
{
((MaterialButton) child).setMaxLines(2);
}
}
SampleButton.setText("Hey\nI'm multiline"); // notice the escape character of newline-> \n
这样,我们通过代码强制MaterialToggleGroup的子视图实现maxLines
最后,第二部分是:
public class CustomMaterialButtonToggleGroup extends MaterialButtonToggleGroup {
public CustomMaterialButtonToggleGroup(@NonNull Context context) {
super(context);
}
public CustomMaterialButtonToggleGroup(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public CustomMaterialButtonToggleGroup(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void addView(View child, int index, ViewGroup.LayoutParams params) {
super.addView(child, index, params);
if(child instanceof MaterialButton)
{
((MaterialButton) child).setMaxLines(2);
}
}
SampleButton.setText("Hey\nI'm multiline"); // notice the escape character of newline-> \n
然后像往常一样在strings.xml中提取它