Android 如何在TextInputLayout中设置EditText小部件的样式

Android 如何在TextInputLayout中设置EditText小部件的样式,android,user-interface,Android,User Interface,刚刚开始设计应用程序的样式和主题 我在AppCompatActivity中的TextInputLayouts中有许多EditTexts 我的问题是: 不确定EditText小部件中的哪一行(上面的蓝线)被调用,只是将其称为“标尺”。如何使标尺(上面看不见)可见,并使用任何自定义颜色。目前,标尺仅在点击EditText时显示 EditText光标不显示,如何使其可见 如何自定义上面的“添加”按钮的背景颜色和文本颜色 最初如何将焦点设置为第一个EditText TextInputLayout的提

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

我在
AppCompatActivity
中的
TextInputLayout
s中有许多
EditText
s

我的问题是:

  • 不确定
    EditText
    小部件中的哪一行(上面的蓝线)被调用,只是将其称为“标尺”。如何使标尺(上面看不见)可见,并使用任何自定义颜色。目前,标尺仅在点击
    EditText
    时显示
  • EditText
    光标不显示,如何使其可见
  • 如何自定义上面的“添加”按钮的背景颜色和文本颜色
  • 最初如何将焦点设置为第一个
    EditText
  • TextInputLayout
    的提示颜色缩小并飞到顶部后如何更改?(现在是蓝色的。)
  • 默认的Android字体是Roboto吗?我怎样才能将字体更改为“真正快速”的任何可用字体
非常感谢任何帮助或指点

相应的代码片段:

布局
文件

            <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>
colors.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>
<?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>
        <activity
        android:name=".xxx.xxxCRUActivity"
        android:label="@string/title_activity_add"
        android:theme="@style/MyThemeNavy.Dialogs">
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>

            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>

谢谢大家!

关于您的
文本输入布局
,为其创建一个样式

<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>

如果要更改文本输入布局的Hiint颜色,请更改color.xml文件中colorAccent的颜色。将完整的style.xml、color.xml和layoutfile张贴在此处。谢谢@ChiragSavsani。发布了完整的
颜色
样式
XML。我的版面文件太大了,不适合这篇文章。谢谢,@Niels Masdorp。但是,在使用您的建议时,出现了一个异常:
原因:java.lang.UnsupportedOperationException:无法在android.content.res.TypedArray.getColor(TypedArray.java:327)上转换为color:type=0x2
不确定原因。在清单中,我的活动使用自定义主题(上面的代码)。这个错误是因为那个吗?我的错误,上面的例外。小部件是
EditText
而不是
appcompatieditText
+1。根据您的建议,@Niels Masdorp:hint color样式有效。但是,不确定
colorControl
属性在做什么。它们是给尺子的吗?From:
@null
有效!我确信还有更多的属性,这些只是我曾经使用过的属性。很高兴能帮忙!也许把你的问题分开,以便更好地回答其他问题?不过我以后可能会看一看。
 <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>