web-dev-qa-db-ja.com

TextInputEditTextヒントの色を変更する

TextInputEditTextヒントのテキストの色を変更したい。何を変えても、いつもアプリのメインテーマの色になっているようです。

            <Android.support.design.widget.TextInputLayout
                Android:id="@+id/enter_template_name_edit_text_input_layout"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:textColorHint="@color/warm_grey">

                <Android.support.design.widget.TextInputEditText
                    Android:id="@+id/template_name_text_input_edit_text"
                    style="@style/EditTextBaseStyle"
                    Android:layout_width="match_parent"
                    Android:layout_height="wrap_content"
                    Android:gravity="start"
                    Android:hint="@string/add_nitrogen_template_name_label"
                    Android:imeOptions="actionNext"
                    Android:inputType="textCapWords|textNoSuggestions"
                    Android:maxLines="1"
                    Android:paddingBottom="@dimen/md_content_padding_bottom"
                    Android:textAlignment="textStart"
                    Android:textColorHint="@color/warm_grey"
                    Android:textSize="32sp" />

そしてベーススタイル

<style name="EditTextBaseStyle" parent="Widget.AppCompat.EditText">
    <item name="Android:textViewStyle">@style/TextViewStyle</item>
    <item name="Android:textColor">@color/middle_black</item>
    <item name="Android:textStyle">normal</item>
    <item name="Android:textSize">16sp</item>
</style>

追加してみました

Android:textColorHint="@color/warm_grey"

基本スタイルと私のAppThemeに、それは役に立ちませんでした。

これが私のAppThemeです

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/primary</item>
    <item name="Android:textColorHint">@color/primary_text</item>
    <item name="Android:windowBackground">@null</item>
    <item name="Android:windowSoftInputMode">stateHidden|adjustPan</item>
</style>

ここで欠けているものはありますか?

ありがとう、オッターマン

編集:フィールドにフォーカスがある場合、ヒントは正しい色ですnot。フィールドがフォーカスを受け取ると、ヒントがフィールドの上に移動し、誤った色が表示されます。

8
Otterman

私にとっての修正は、ここで説明されているようにTextInputEditTextではなくTextInputLayoutにヒントとtextColorを設定することでした: https://material.io/develop/Android/components/text-input-layout/

    <Android.support.design.widget.TextInputLayout
        Android:id="@+id/passwordTextInputLayout"
        Android:hint="@string/add_nitrogen_template_name_label"
        Android:textColorHint="@color/warm_grey">

        <Android.support.design.widget.TextInputEditText
            Android:textAppearance="@style/TextAppearance.Regular"
            Android:textColor="@color/white"/>
    </Android.support.design.widget.TextInputLayout>
16
ahermann

AppThemeに対してこれらの属性も試しましたか?

<item name="colorControlNormal">@color/primary</item>
<item name="colorControlHighlight">@color/warm_grey</item>      
<item name="colorControlActivated">@color/warm_grey</item>

または移動

Android:textColorHint="@color/warm_grey"

xMLウィジェットからEditTextBaseStyle

4
snachmsm

これを試して:

 <style name="AppTheme.EditTextBaseStyle" parent="@Android:style/TextAppearance">
    <item name="Android:textColor">@Android:color/darker_gray</item>
</style>
2
huk

追加することでこれを正常に機能させることができました

app:hintTextAppearance="@style/EditTextHintStyle"

私のTextInputLayout

これが正しいスタイルです

<style name="EditTextHintStyle" parent="EditTextBaseStyle">
    <item name="Android:textColor">@color/warm_grey</item>
</style>
1
Otterman

app:hintTextColorおよびAndroid:textColorHintレイアウトの属性:

<com.google.Android.material.textfield.TextInputLayout
    app:hintTextColor="@color/mycolor"
    Android:textColorHint="@color/text_input_hint_selector"
    .../>

または、カスタムスタイルで定義することもできます。

<style name="..." parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
    <!-- The color of the label when it is collapsed and the text field is active -->
    <item name="hintTextColor">@color/my_color</item>

    <!-- The color of the label in all other text field states (such as resting and disabled) -->
    <item name="Android:textColorHint">@color/my_selector_color</item>
</style>
1