デザインライブラリの新しいTextInputLayout
を使用しています。浮遊ラベルの色を変えて表示させることができます。残念ながら、実際のEditText
ヒントは常に白です。
私はXML、スタイル、そしてプログラムでhintColorを変更してみました。そしてまたAndroid.support.v7.widget.AppCompatEditText
を使ってみましたが、EditText
ヒントは常に白を示しています。
これが私のTextInputLayout
とEditText
のXMLです。
<Android.support.design.widget.TextInputLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android.support.design:hintTextAppearance="@style/GreenTextInputLayout">
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:id="@+id/city"
Android:textColorHint="@color/black"
Android:hint="@string/city" />
</Android.support.design.widget.TextInputLayout>
そしてこれが私がTextInputLayout
に使っているスタイルです(私はhintTextColor
属性を黒にしてみましたが、私には何もしませんでした):
<style name="GreenTextInputLayout" parent="@style/TextAppearance.AppCompat">
<item name="Android:textColor">@color/homestory_green</item>
</style>
親ビューがサードパーティのライブラリのスタイルを持っていて、EditTextが白になっているように見えます。
Android:theme="@style/com_mixpanel_Android_SurveyActivityTheme"
これを削除すると、すべてうまくいきました。
アプリケーションのテーマでAndroid:textColorHint
を定義します。
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="Android:textColorHint">@color/secondary_text</item>
</style>
Style.xmlでカスタムスタイルを作成する
<style name="EditTextHint" parent="TextAppearance.AppCompat">
<item name="colorAccent">@Android:color/white</item>
<item name="Android:textColorHint">@color/BackgroundtWhiteColor</item>
<item name="colorControlNormal">@color/BackgroundtWhiteColor</item>
<item name="colorControlActivated">@color/your color</item>
<item name="colorControlHighlight">@color/BackgroundtWhiteColor</item>
</style>
次に、レイアウトxmlファイルに、theme属性を次のように追加します。
<Android.support.design.widget.TextInputLayout
Android:theme="@style/EditTextHint"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"/>
</Android.support.design.widget.TextInputLayout>
これがうまくいくことを願っています
同じ問題がありました。これらの行を親テーマに入れることで解決しました。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/ColorPrimaryDark</item>
<item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
<item name="colorAccent">@color/AccentColor</item>
<item name="Android:windowTranslucentStatus">true</item>
<item name="Android:textColorHint">@color/BackgroundtWhiteColor</item>
<item name="colorControlNormal">@color/BackgroundtWhiteColor</item>
<item name="colorControlActivated">#ff0000</item>
<item name="colorControlHighlight">@color/BackgroundtWhiteColor</item>
<!-- Customize your theme here. -->
</style>
これらを入れれば
<item name="Android:textColorHint">@color/BackgroundtWhiteColor</item>
<item name="colorControlNormal">@color/BackgroundtWhiteColor</item>
<item name="colorControlActivated">#ff0000</item>
<item name="colorControlHighlight">@color/BackgroundtWhiteColor</item>
別のスタイルで、それをTextInputLayoutまたはEdittextに適用すると表示されません。あなたは持っていますそれをアプリケーションの親テーマに入れます。
編集テキストにtextColorHintプロパティを追加します。
Android:textColorHint="#F6F6F6"
またはあなたが望む色
私はあなたの問題の原因がこのコードを完璧に機能させるのかよくわかりません。正しいxml名前空間(xmlns
)を使うことと関係があると思います。 xml名前空間属性なしでAndroid.support.designを使用することがサポートされているかどうかわかりません。あるいは、EditText自体で使用しているtextColorHint
属性と関係があります。
レイアウト:
<Android.support.design.widget.TextInputLayout
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="5dp"
app:hintTextAppearance="@style/GreenTextInputLayout">
<Android.support.v7.widget.AppCompatEditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="test"
Android:inputType="text" />
</Android.support.design.widget.TextInputLayout>
スタイル:
<style name="GreenTextInputLayout" parent="@Android:style/TextAppearance">
<item name="Android:textColor">#00FF00</item>
</style>
それは私のために働いた以下のコードを参照してください。しかし、それはあなたのすべてのコントロールの色に影響します。
<!-- In your style.xml file -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!--EditText hint color-->
<item name="Android:textColorHint">@color/default_app_white</item>
<!-- TextInputLayout text color-->
<item name="colorControlActivated">@color/default_app_green</item>
<!-- EditText line color when EditText on-focus-->
<item name="colorControlHighlight">@color/default_app_green</item>
<!-- EditText line color when EditText in un-focus-->
<item name="colorControlNormal">@color/default_app_white</item>
</style>
Android:textColorHint = "#FFFFFF"はいつかは動作しますが何もしません。私の下の解決策は完璧に動作します
以下のコードを試してみてくださいXMLファイルで動作し、TextLabelテーマはstyle.xmlで定義されています
<Android.support.design.widget.TextInputLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:theme="@style/MyTextLabel">
<EditText
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:hint="Floating Label"
Android:id="@+id/edtText"/>
</Android.support.design.widget.TextInputLayout>
スタイルフォルダー内のTextLabelコード
<style name="MyTextLabel" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="Android:textColorHint">@color/Color Name</item>
<!--The size of the text appear on label in false state -->
<item name="Android:textSize">20sp</item>
<!-- Label color in TRUE state and bar color FALSE and TRUE State -->
<item name="colorAccent">@color/Color Name</item>
<item name="colorControlNormal">@color/Color Name</item>
<item name="colorControlActivated">@color/Color Name</item>
</style>
ラベルの色をfalse状態に変更したいだけの場合は、colorAccent、colorControlNormal、およびcolorControlActivatedは必要ありません。
EditTextを保持するTextInputLayoutに、以下を追加します。
Android:textColorHint="someColor"
たくさんの答えがありますが、このために必要なのは1行だけです。
Android:textColorHint = "#000000"
<EditText
Android:id="@+id/edtEmail"
Android:textColorHint="#000000"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"/>
TextInputlayout
の中でAndroid:textColorHint="@color/color_black"
を使うことができます。
<Android.support.design.widget.TextInputLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="@dimen/dp_10"
Android:textColorHint="@color/color_black"
app:hintTextAppearance="@style/TextLabel">
<EditText
Android:id="@+id/et_state"
style="@style/profile_editTextStyle"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="@string/billingState"
Android:text="@string/billingState"
/>
</Android.support.design.widget.TextInputLayout>
これによると: https://code.google.com/p/Android/issues/detail?id=176559
これを試して:
<Android.support.design.widget.TextInputLayout
Android:textColorHint="#A7B7C2"
Android:layout_width="match_parent"
Android:layout_height="50dp">
<EditText
Android:id="@+id/et_confirm_password"
Android:textColor="@Android:color/black"
Android:hint="Confirm password"
Android:inputType="textPassword"
Android:layout_width="match_parent"
Android:layout_height="match_parent" />
</Android.support.design.widget.TextInputLayout>
23.1.1で動作します
これを試してみるとよいでしょう
edittext.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "onTextChanged", 2000).show();;
//newuser.setTextColor(Color.RED);
edittext.setHintTextColor(Color.RED);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "afterTextChanged", 2000).show();;
}
});
<item name="colorAccent">@Android:color/black</item>
あなたのテーマの中であなたの好みの色にあなたのcolorAccentを変えなさい、これはあなたのヒントと同様にあなたのEditText行、カーソルを変えるでしょう
あるいは、style.xmlの中にこのスタイルを含めることもできます。
<style name="TextLabel" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="Android:textColorHint">@Android:color/black</item>
<item name="Android:textSize">20sp</item>
<!-- Label color in TRUE state and bar color FALSE and TRUE State -->
<item name="colorAccent">@Android:color/black</item>
<item name="colorControlNormal">@Android:color/black</item>
<item name="colorControlActivated">@Android:color/black</item>
</style>
あなたのTextInputLayoutの中にあなたはこのようにそれを置くことができます
<Android.support.design.widget.TextInputLayout
Android:id="@+id/input_layout_password"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:theme="@style/TextLabel">
<EditText
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:drawableLeft="@drawable/password"
Android:drawableStart="@drawable/password"
Android:maxLines="1"
Android:hint="password"
Android:inputType="textWebPassword" />
</Android.support.design.widget.TextInputLayout>
<Android.support.design.widget.TextInputLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<EditText
Android:id="@+id/name"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="Name"
Android:textColor="@color/black"
Android:textColorHint="@color/grey"/>
</Android.support.design.widget.TextInputLayout>
TextColorHintを使用して、EditTextのヒントカラーとして必要な色を設定します。重要なのは、EditText内のヒントは、何かを入力したときではなく、EditTextにフォーカスが移ったとき(クールなアニメーションを使用したとき)にすぐに消えることです。あなたがフォーカスを離れてEditTextに切り替えると、これにはっきり気付くでしょう。
TextInputLayoutにヒントカラーを設定する必要があります。
遅れていますが、それは私がこのようなことをした誰かを助けるかもしれません
<Android.support.design.widget.TextInputLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:layout_marginLeft="30dp"
Android:layout_marginStart="30dp"
Android:textColorHint="#8cffffff">
<Android.support.v7.widget.AppCompatEditText
Android:id="@+id/email_edit"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="@string/security_email"
Android:inputType="textEmailAddress"
Android:textColor="@color/white"
app:backgroundTint="#8cffffff" />
</Android.support.design.widget.TextInputLayout>
<Android.support.design.widget.TextInputLayout
Android:id="@+id/input_layout_passdword"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:textColorHint="#d3d3d3">
<EditText
Android:id="@+id/etaddrfess_ciwty"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@Android:color/transparent"
Android:bottomLeftRadius="10dp"
Android:bottomRightRadius="50dp"
Android:fontFamily="@font/frutiger"
Android:gravity="start"
Android:hint="@string/address_city"
Android:padding="10dp"
Android:textColor="#000000"
Android:textColorHint="#000000"
Android:textSize="14sp"
Android:topLeftRadius="10dp"
Android:topRightRadius="10dp" />
</Android.support.design.widget.TextInputLayout>``
以下のコードを試してください。
明るい色は白です。
<Android.support.design.widget.TextInputLayout
Android:id="@+id/input_layout_mobile"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:theme="@style/TextStyle"
>
<EditText
Android:id="@+id/input_mobile"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:singleLine="true"
Android:drawablePadding="14dp"
Android:drawableLeft="8dp"
Android:textColor="@color/white"
Android:hint="Mobile" />
</Android.support.design.widget.TextInputLayout>
スタイル:TextStyle
<style name="TextStyle" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="Android:textColorHint">@color/white</item>
<item name="Android:textSize">20sp</item>
<!-- Label color in TRUE state and bar color FALSE and TRUE State -->
<item name="colorAccent">@color/white</item>
<item name="colorControlNormal">@color/white</item>
<item name="colorControlActivated">@color/white</item>
</style>
これは私のこの同様の問題と必要な解決策についての私の経験です。
要件:
TextInputEditText
を作成する必要があります。問題が発生しました:
Android:textColorHint
は要求通りに動作していません。解決策が試行されましたが、失敗しました:
Android:textColorHint
を使用し、TextInputEditText
に適用します。結果も違いもありません。Android:textColorHint
を設定します。それは役に立ちましたが、現在はアプリケーション全体に設定されています。 (要件を満たしていません)たくさんのRnDの後、見つかった最良の解決策は、themeをTextInputLayout
またはその親ビューに適用する必要があると説明した記事にありましたstyleをTextInputEditText
またはその親ビューにのみ適用します。
TextInputLayoutの適切なTheming をチェックしてください。