无法动态更改TextInputLayout的提示文本外观颜色

时间:2016-05-07 04:57:27

标签: android android-textinputlayout

需要达到什么目标?

当TextInputLayout使用属性失去焦点时,我试图以编程方式更改TextInputLayout的提示文本颜色:

InputLayout.setHintTextAppearance(R.style.SetFocusTheme)

但是当焦点丢失时,从inputlayout到其他一些小部件主题不起作用。它似乎从该点开始从活动中选择主题属性,直到它再次获得焦点。

以下是为SetHasFocusTheme

定义的样式
 <style name="CustomTextAppearanceLostFocus"   
parent="TextAppearance.Design.Hint">
        <item name="android:textColor">#23FFAB</item>
        <item name="android:textColorHint">#23FFAB</item>    
    </style>

我已经搜索了很多相同的内容,但没有遇到相同的完整证明解决方案,因为我的理解是这种类型的有限控制,我们无法更改TextInputLayout Widget的文本提示颜色焦点或当它失去焦点使我们陷入困境时,因为我们无法完全控制非常糟糕的小部件样式。我希望有人可以对此有更好的了解,并指导我朝着正确的方向前进。

2 个答案:

答案 0 :(得分:0)

亲爱的首先制作一个新的布局

row_inputlayout_item.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TextInputLayout      xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
app:errorTextAppearance="@style/TextLabelInput"

 />

在您的代码中添加动态

TextInputLayout  input = new TextInputLayout(this);
  input = (TextInputLayout)getLayoutInflater().inflate(R.layout.row_inputlayout_item, null);

在styles.xml中设置此样式

<style name="TextLabelInput" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="android:textColorHint">@color/solid_red</item>
<item name="android:textSize">16sp</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@color/solid_red</item>

</style>

您可以在您的欲望活动项目Androidmainfest.xml中的style.xml中添加主题

并且整个答案都满足了您的需求

 <style name="YourTheme.Base"   parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:textColor">#23FFAB</item>
    <item name="android:textColorHint">#23FFAB</item>

// if you want customize use it
 <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryTransparent</item>
    <item name="colorAccent">@color/colorAccent</item>

</style>

试试这个..我相信它会帮助你100%......

答案 1 :(得分:0)

试试这个

cell.pinkCircleImageView.hidden = false
cell.blueCircleImageView.hidden = false

if _name.gender! == "M" {
    cell.pinkCircleImageView.hidden = true
    cell.bringSubviewToFront(blueCircleImageView)
} else if _name.gender! == "F" {
    cell.blueCircleImageView.hidden = true
    cell.bringSubviewToFront(pinkCircleImageView)
}

if indexPath.row % 2 == 0
{
    cell.backgroundColor=UIColor.whiteColor()
}
else
{
    cell.backgroundColor=UIColor(red: 248/255, green: 248/255, blue: 248/255, alpha: 1.0)
}