3

フローティング ラベル ヒントで TextInputLayout を使用しています。しかし、通常の状態では、ヒントの色を白から他の色に変更することはできません。これを行う方法はありますか?

<android.support.design.widget.TextInputLayout
    android:id="@+id/fullNameTextLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:layout_weight="0.75">
    <EditText
        android:id="@+id/etFullName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="15dp"
        android:layout_marginLeft="15dp"
        android:layout_marginEnd="15dp"
        android:layout_marginRight="15dp"
        android:singleLine="true"
        android:hint="Full Name"
        android:textColor="@color/gray_dark"
        android:textColorHint="@color/green"
        android:textColorHighlight="@color/green" />
</android.support.design.widget.TextInputLayout>

背景を変えたスクリーンショットを2枚添付。

緑の背景と同じビュー

白い背景と同じビュー

4

5 に答える 5

7

これを TextInputLayout に追加してください。

  app:hintTextAppearance="@style/mytext 

したがって、レイアウトは次のようになります。

 <android.support.design.widget.TextInputLayout
        android:id="@+id/aeal_input_layout_zipcode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColorHint="@color/green"
        app:hintTextAppearance="@style/mytext">
    <EditText
        android:id="@+id/aeal_etZipCode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Zipcode"
        android:singleLine="true"
        android:inputType="number"
        android:textColor="@color/primaryTextColor" />
</android.support.design.widget.TextInputLayout>

スタイル.xml:

 <style name="mytext" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/green</item>
    <item name="android:textColorHint">@color/green</item>
    <item name="colorAccent">@color/green</item>
    <item name="android:textSize">14sp</item>
</style>

編集済み: TextInputLayout に textColorHint を追加する必要があり、必要に応じて適切に機能します。

それは私のために働いたので、あなたにも役立つかもしれません。

于 2016-01-29T07:02:20.833 に答える
0

これを使用して、ヒントの色を変更します。-

editText.setHintTextColor(getResources().getColor(R.color.xyz));

あなたの問題の解決策 -

editText.addTextChangedListener(new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence arg0, int arg1, int arg2,int arg3){
        //do something
    }

    @Override
    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        //do something
    }

    @Override
    public void afterTextChanged(Editable arg0) {
        if(arg0.toString().length() <= 0) //check if length is equal to zero
            editText.setHintTextColor(getResources().getColor(R.color.xyz));
    }
});
于 2016-01-29T06:54:08.033 に答える