3

は、プログラムでこれらのTextInputLayoutのプロパティをカスタマイズする方法はありますテーマ属性を使用してスタイルを設定する方法ですが、私が作業しているプロジェクトでは色情報を動的に読み込み、実行時にテーマ/スタイル値を変更する方法はありません。スタイルTextInputLayoutプログラムで

+0

enter image description here

enter image description here

enter image description here

public class TextInputLayoutUseful extends TextInputLayout { private CharSequence originalHint = ""; public TextInputLayoutUseful(Context context) { super(context); init(); } public TextInputLayoutUseful(Context context, AttributeSet attrs) { super(context, attrs); init(); } public TextInputLayoutUseful(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } private void init() { this.originalHint = getHint(); setErrorEnabled(false); } /** * - put error text into top floating label * - colorized layout * * @param error error text */ @Override public void setError(@Nullable CharSequence error) { if (error == null) { setHint(originalHint); setHintTextAppearance(R.style.InputLayoutNormalHint); setUnderlineColor(R.color.input_normal_accent); } else { setHint(error); setHintTextAppearance(R.style.InputLayoutErrorHint); setUnderlineColor(R.color.input_error_accent); } } /** * colorized layout specified green color * * @param acceptedHint text for floating label */ public void setGreenError(@NonNull CharSequence acceptedHint) { setHint(acceptedHint); setHintTextAppearance(R.style.InputLayoutAcceptedHint); setUnderlineColor(R.color.input_accepted_accent); } private void setUnderlineColor(@ColorRes int colorRes) { if (getEditText() != null) { getEditText().getBackground().mutate().setColorFilter(ContextCompat.getColor(getContext(), colorRes), PorterDuff.Mode.SRC_ATOP); } } } 

スタイル:http://stackoverflow.com/questions/31722034/how-変更するテキストの色の入力レイアウト - ラベルとエディットテキストアンダーラインndroid/31723120#31723120 – guisantogui

+1

問題はプログラム的に設定することでした。 –

答えて

0

私はtextInputLayoutの実装を書いています。下線とエラーの色を設定し、上にエラーを表示できます。あなたは答えをここに見つけることが

<style name="InputLayoutErrorHint" parent="TextAppearance.AppCompat"> 
    <item name="android:textColor">@color/input_error_accent</item> 
</style> 

<style name="InputLayoutNormalHint" parent="TextAppearance.AppCompat"> 
    <item name="android:textColor">@color/input_normal_accent</item> 
</style> 

<style name="InputLayoutAcceptedHint" parent="TextAppearance.AppCompat"> 
    <item name="android:textColor">@color/input_accepted_accent</item> 
</style> 
関連する問題