Как установить подсказку TextInputLayout с несколькими стилями?

У меня есть TextInputLayout и Edittext внутри этого, нужно сделать подсказку с несколькими стилями, такими как Дата рождения мм/дд/гггг. mm/dd/yyyy должен быть только курсивом, и когда мы фокусируемся на Edittext, текст того же формата должен быть сверху (как работает TextInputLayout).

Что я пробовал, и подобные есть:

  1. Использование SpannableString и настройка подсказки на EditText
  2. Назначение Htmlformatter и установка подсказки в редактируемом тексте

Для обеих вышеупомянутых проблем - когда фокус находится на тексте редактирования, плавающий текст недоступен.

  1. Настройка подсказки для TextInputLayout с использованием SpannableString и Htmlformatter: для этого проблема курсив для мм/дд/гггг не будет работать, но фокус и плавающий текст работают.

Нужно знать, как мы можем стилизовать подсказку TextInputLayout с несколькими стилями, имеющими плавающий текст, а также с одним и тем же стилизованным текстом.


person DAS    schedule 21.06.2018    source источник
comment
Вы хотите, чтобы textinputLayout был не курсивом, когда в тексте редактирования нет фокуса, а textinputLayout был курсивом, когда фокус был на тексте редактирования?   -  person Red M    schedule 21.06.2018
comment
Один текст с несколькими стилями. например: предположим, что дата рождения мм/дд/гггг - это весь текст, я хочу, чтобы дата рождения была обычным текстом, а дд/мм/гггг - курсивом. и он должен работать как для фокуса, так и для плавающего текста.   -  person DAS    schedule 21.06.2018
comment
Вы хотите, чтобы текст в EditText имел стиль, отличный от текста подсказки и плавающего текста?   -  person    schedule 05.07.2018


Ответы (1)


С библиотекой компонентов материалов, начиная с 1.2.0-alpha05, вы можете форматировать текст подсказки.

Просто используйте:

    <com.google.android.material.textfield.TextInputLayout
        android:hint="@string/hint_italic"
        >

с:

<string name="hint_italic">Date of Birth <i>mm/dd/yyyy</i></string>

введите здесь описание изображениявведите здесь описание изображения

person Gabriele Mariotti    schedule 05.05.2020