android - 是否可以在不使用主题的情况下以编程方式更改 TextInputLayout 颜色?
问题描述
我现在在我的主题中使用它我想知道是否可能不使用主题以编程方式更改 textinputlayout 的颜色,或者我仍然可以在不使用主题的情况下更改 xml,因为我需要动态获取颜色并为此编写代码或在 xml 中进行数据绑定.
<item name="colorControlActivated">@color/primaryTextColor</item>
<item name="android:textColorHint">@color/primaryTextColor</item>
<item name="android:textColor">@color/primaryTextColor</item>
<item name="android:editTextColor">@color/primaryTextColor</item>```
解决方案
是的,我们可以使用 setBackgroundColor()。
但在你的情况下,我认为你需要建立自己的风格,这里有一个例子:
创建 TextInputLayout 主题 让我们定义几个将用作主题一部分的文本样式。这些样式对应于使用的不同文本,例如提示和错误文本。
<style name="ErrorText" parent="TextAppearance.AppCompat">
<item name="android:textColor">@android:color/red</item>
<item name="android:textSize">16sp</item>
</style>
<style name="HintText" parent="TextAppearance.AppCompat">
<item name="android:textColor">@android:color/white</item>
<item name="android:textSize">14sp</item>
</style>
然后,我们创建我们的 TextInputLayout 主题,参考上面的内容:
<style name="TextInputLayoutAppearance" parent="Widget.Design.TextInputLayout">
<!-- reference our hint & error styles -->
<item name="hintTextAppearance">@style/HintText</item>
<item name="errorTextAppearance">@style/ErrorText</item>
<item name="android:textColor">@color/user_input_color</item>
<item name="android:textColorHint">@color/unfocused_color</item>
<item name="colorControlNormal">@color/white</item>
<item name="colorControlActivated">@color/blue</item>
<item name="colorControlHighlight">@color/green</item>
</style>
最后一步,我们使用 android:theme 属性和我们上面定义的样式构建我们的 layout.xml:
<android.support.design.widget.TextInputLayout
android:theme="@style/TextInputLayoutAppearance"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_email"/>
</android.support.design.widget.TextInputLayout>
推荐阅读
- javascript - Laravel $request->all() 没有返回任何响应 ajax 请求
- javascript - 如何在javascript中加载没有点击事件的函数
- python - 为什么 Pipenv 没有选择我的 Pyenv 版本?
- r - 满足条件时如何添加包含特定值的列?
- c++ - 如何找到丢失的图书馆的位置
- angular - Angular 10 中的 .toPromise() 异常
- database - 创建第一个数据管道
- python - Python 中的 Google Video Intelligence API:如何下载响应 JSON?
- r - 识别数据框中每个 id 的值的开始和结束时间
- django - DJANGO 结合路径引用使用静态文件