Android: как указать 2 стиля для EditText? - PullRequest
0 голосов
/ 06 ноября 2018

Я работаю над приложением Xamarin для Android и создаю панель поиска , которая выглядит как на iOS.

Для этого я использую EditText, но мне нужно применить 2 разных стиля для заполнителя и введенного текста :

  • заполнитель : FontFamily A, TextSize A, TextColor A, ...
  • введенный текст : FontFamily B, TextSize B, TextColor B, ...

Я знаю, что могу указать цвет, но не вижу, как переопределить другие свойства (FontFamily, TextSize, ...)

<EditText
    android:id="@+id/searchbar_edittext"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_marginLeft="@dimen/searchbar_spacing"
    android:layout_toRightOf="@id/searchbar_search_image"
    android:layout_centerVertical="true"
    android:gravity="center_vertical"
    android:layout_gravity="center_vertical"
    android:hint="Search for a place or address"
    android:background="@android:color/transparent"
    style="@style/MontserratRegular13Grey"/>

Как мне этого добиться?

1 Ответ

0 голосов
/ 07 ноября 2018

Вы можете указать 2 стиля для editext и подсказки, используя строковый ресурс для подсказки:

android:hint="@string/edittext_hint" 

и установка стиля подсказки в string.xml в вашем ресурсе значений.

Я создал простой пример, и он работает:

layout.xaml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <EditText
    android:id="@+id/searchbar_edittext"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_centerVertical="true"
    android:gravity="center_vertical"
    android:layout_gravity="center_vertical"
    android:hint="@string/edittext_hint" />
</RelativeLayout>

strings.xml

<resources>
    <string name="app_name">App45</string>
    <string name="action_settings">Settings</string>
    <string name="edittext_hint">
      <font size="50" color="blue">Hint here!</font>
    </string>
</resources>

Кстати, strings.xml находится в папке значений в ресурсе.

...