如何在TextInputLayout

时间:2015-12-24 12:03:03

标签: android user-interface

刚刚开始设计样式和主题应用程序。

我在EditText的{​​{1}}中有很多TextInputLayout个。

enter image description here

我的问题是:

  • 不确定调用AppCompatActivity小部件中的行(上面的蓝线),只是将其称为“标尺”。统治者(上面看不见)如何变得可见,以及任何自定义颜色。目前,标尺仅在点击EditText时显示。
  • EditText光标未显示,如何显示?
  • 如何根据背景颜色和文字颜色自定义上面的“添加”按钮?
  • 如何将焦点设置为最初的EditText
  • 如果EditText的提示颜色在缩小并飞到顶部之后如何改变? (目前,蓝色。)
  • 是默认的Android字体TextInputLayout吗?如何将字体更改为可用的任何内容,“真正快速”?

非常感谢任何帮助或指示。

对应的代码片段:

Roboto 文件

Layout

<TextView android:id="@+id/pocLabel" style="@style/DialogLabelColor" android:text="Business Owner"/> <android.support.design.widget.TextInputLayout android:id="@+id/tilPOCFName" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/pocLabel"> <android.support.v7.widget.AppCompatEditText android:id="@+id/POCFName" style="@style/InputDialogText" android:hint="First name (REQUIRED)" android:inputType="textCapWords"/> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout android:id="@+id/tilPOCLName" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/tilPOCFName" android:textColor="#000000"> <EditText android:id="@+id/POCLName" style="@style/InputDialogText" android:hint="Last name" android:inputType="textCapWords"/> </android.support.design.widget.TextInputLayout>

styles.xml

<!-- Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devices. --> <style name="AppBaseTheme" parent="android:Theme.Light"> <!-- Theme customizations available in newer API levels can go in res/values-vXX/styles.xml, while customizations related to backward-compatibility can go here --> </style> <style name="activated" parent="AppBaseTheme"></style> <!-- Application theme --> <style name="MyThemeNavy" parent="Theme.AppCompat.NoActionBar"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> <item name="windowActionBar">false</item> <item name="android:windowActionBar">false</item> <item name="android:colorPrimary">@color/primaryColor</item> <item name="android:colorPrimaryDark">@color/primaryColorDark</item> <item name="android:colorAccent">@color/accentColor</item> <item name="android:textColor">@color/main_list_text_color</item> <item name="android:textColorHint">@color/main_list_text_color</item> <item name="drawerArrowStyle">@style/Widget.AppCompat.DrawerArrowToggle</item> </style> <style name="Base.Widget.AppCompat.DrawerArrowToggle." parent="Base.Widget.AppCompat.DrawerArrowToggle"> <item name="spinBars">true</item> <item name="color">#FFF</item> </style> <style name="InfoDlgTextLHS" parent="AppBaseTheme"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:textAppearance">?android:attr/textAppearanceSmall</item> <item name="android:textStyle">normal</item> <item name="android:textColor">@color/main_list_text_color</item> </style> <style name="InputDialogText" parent="MyThemeNavy"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:textAppearance">?android:attr/textAppearanceMedium</item> <item name="android:textStyle">normal</item> <item name="android:textColor">@color/main_list_text_color</item> </style> <style name="InfoDlgTextRHS" parent="AppBaseTheme"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:textAppearance">?android:attr/textAppearanceSmall</item> <item name="android:textStyle">bold</item> <item name="android:textColor">@color/main_list_text_color</item> </style> <style name="DialogLabelColor" parent="MyThemeNavy"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_margin">4dp</item> <item name="android:padding">10dp</item> <item name="android:background">@drawable/dialog_label_background</item> <item name="android:textColor">@color/main_list_text_color_inverse</item> <item name="android:textStyle">bold</item> </style> <style name="MyThemeNavy.Dialogs" parent="MyThemeNavy"> <item name="android:textColor">@color/main_list_text_color</item> <item name="android:textColorHint">@color/main_list_text_color</item> </style> </resources>

colors.xml

<?xml version="1.0" encoding="utf-8"?> <resources> <color name="primaryColor">#006989</color> <color name="primaryColorDark">#FFFFFF</color> <color name="accentColor">#FFFFFF</color> <color name="colorBackground">#B1C1C0</color> <!-- Drawer --> <color name="mainDrawerBackground">#564639</color> <!-- Main (non-drawer) lists --> <color name="commonMainListsBackground">#FFFFFF</color> <color name="main_list_text_color">#000000</color> <color name="list_item_pressed_color">#CADAFF</color> <color name="list_item_color">#FFFFFF</color> <color name="drawer_list_item_pressed_color">#E4FDE1</color> <color name="drawer_list_item_color">@color/mainDrawerBackground</color> <color name="divider_color">#DFF8EB</color> <!-- Counters --> <color name="distance_counter_color">#FE5F55</color> <color name="deals_counter_color">#388659</color> <!-- Information dialog --> <color name="info_content_color">#FFFFFF</color> <color name="primary_material_dark">#9e9e9e</color> <color name="primary_dark_material_dark">#cad7ff</color> <color name="accent_material_dark">#3469ff</color> <color name="background_material_dark">#344055</color> <color name="foreground_material_dark">#ffffff</color> <color name="colorPrimaryDark">#044389</color> <!-- Input dialogs --> <color name="input_dialog_backgroud">#6DAEDB</color> <color name="main_list_text_color_inverse">#FFFFFF</color>

AndroidManifest.xml

谢谢!

1 个答案:

答案 0 :(得分:7)

关于TextInputLayout,为其创建一种风格

<style name="InputLayout" parent="TextAppearance.AppCompat">
        <item name="android:textSize">18sp</item>
        <item name="android:textColor">@color/white</item>
        <item name="android:textColorHint">@color/grey</item>
        <item name="colorAccent">@color/grey</item>
        <item name="colorControlNormal">@color/grey</item>
        <item name="colorControlActivated">@color/green</item>
    </style>

这使您可以灵活地设置AppCompatEditText的样式。别忘了将样式添加到TextInputLayout

 <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/InputLayout">

        <android.support.v7.widget.AppCompatEditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/hint" />

    </android.support.design.widget.TextInputLayout>