我使用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>
&#13;
在更改背景的情况下附加两个屏幕截图。
答案 0 :(得分:5)
请在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>
style.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,它将在您需要时正常工作。
它对我有用,所以也可以帮到你。
答案 1 :(得分:2)
遇到同样的问题,并使用TextInputLayout的setHintTextAppearance(int)方法解决了这个问题。
示例:
首先找到你的TextInputLayout
android.support.design.widget.TextInputLayout textInputLayout = (TextInputLayout) view.findViewById(R.id.textInputLayout);
现在执行以下操作:
textInputLayout.setHintTextAppearance(R.style.Inactive);
在styles.xml文件中,使用提示颜色的颜色创建样式。例如
<style name="Inactive" parent="AppThemeLight">
<item name="android:textColorPrimary">@android:color/darker_gray</item>
<item name="android:textColor">@android:color/darker_gray</item>
</style>
<style name="Active" parent="AppThemeLight">
<item name="android:textColorPrimary">@android:color/black</item>
<item name="android:textColor">@android:color/black</item>
</style>
现在,当您更改内容时,例如onButtonClick,您只需更改样式。
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
textInputLayout.setHintTextAppearance(R.style.Active);
}
});
请注意,您还必须在TextInputLayout中处理EditText的颜色。
答案 2 :(得分: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));
}
});
答案 3 :(得分:0)
在Style.xml中,您可以更改提示的颜色
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorAccent">#3498db</item>
</style>
有关详情,请参阅this
答案 4 :(得分:0)
试试这个
<android.support.design.widget.TextInputLayout
........
android:textColorHint="requiredColor"
....>
更改浮动提示颜色和
<EditText
android:textColor="requiredColor"
更改edittxt中的提示颜色