代码之家  ›  专栏  ›  技术社区  ›  Gold.strike

Android:如何为EditText指定两种样式?

  •  0
  • Gold.strike  · 技术社区  · 7 年前

    我在一个 Xamarin Android应用程序 ,我创建了一个 搜索栏 在iOS上是这样的。

    为此,我使用 EditText 但我需要为 占位符 以及 输入的文本 :

    • 占位符 :字体系列A,文本大小A,文本颜色A。。。
    • 输入的文本 :字体系列B,文本大小B,文本颜色B。。。

    我知道我可以指定颜色,但不知道如何重新定义其他属性(fontfamine、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 回复  |  直到 7 年前
        1
  •  0
  •   AbbyWang - MSFT    7 年前

    使用字符串资源作为提示,可以为editext和提示指定两种样式:

    android:hint="@string/edittext_hint" 
    

    并在值资源中设置string.xml中的提示样式。

    我创建了一个简单的示例,它可以工作:

    布局.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>
    

    字符串.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位于资源的values文件夹中。