4

有没有办法在被 android.support.design.widget.TextInputLayout 包装时为编辑文本的提示设置多种颜色而不影响浮动编辑文本的行为?

喜欢,标题*

标题和 * 带有不同颜色的提示

4

4 回答 4

3

尝试这个!如果你想将它用于 setText 只需添加 BufferType.SPANNABLE (见下文)

    String redPart = "Hello";
    String bluePart = "World";

    SpannableStringBuilder builder = new SpannableStringBuilder();

    SpannableString redColoredString= new SpannableString(redPart);
    redColoredString.setSpan(new ForegroundColorSpan(Color.RED), 0, redPart.length(), 0);
    builder.append(redColoredString);

    SpannableString blueColoredString= new SpannableString(bluePart);
    blueColoredString.setSpan(new ForegroundColorSpan(Color.BLUE), 0, bluePart.length(), 0);
    builder.append(blueColoredString);


    myEditText.setHint(builder)

    //do following for setText
    myEditText.setText(builder,BufferType.SPANNABLE)
于 2019-04-03T10:58:58.533 回答
0

请参阅下面的代码,这对我有用。

 EditText editText = (EditText) findViewById(textView);
 Spannable wordtoSpan = new SpannableString("Hello world");

 wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 2, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

 editText.setHint(wordtoSpan);
于 2016-10-25T12:38:59.583 回答
0

使用SpannableString允许您在部分字符串上使用不同样式的类...如果我没记错的话,TextAppearanceSpan类用于为文本着色。

于 2016-10-25T12:31:57.550 回答
0

您可以通过编程实现这一点

SpannableString spString = new SpannableString("HEADERLINE*");
    spString.setSpan(new ForegroundColorSpan(Color.MAGENTA), 11,     spString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    metUserName.setHint(spString);
于 2016-10-25T13:21:28.080 回答