【发布时间】:2019-08-22 08:50:14
【问题描述】:
我有一个 TextInputLayout,里面有 TextInputEditText。 TextInputLayout实现主题在聚焦和不聚焦时让他的边框颜色变黄:
TextInputEditText:
style="@style/MyTextInputLayout"
MyTextInputLayout:
<style name="MyTextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="boxStrokeColor">@color/edit_textbox_color</item>
</style>
edit_textbox_color:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?attr/colorPrimary" android:state_focused="true"/>
<item android:alpha="0.87" android:color="@color/colorPrimary" android:state_hovered="true"/>
<item android:alpha="0.12" android:color="@color/colorPrimary" android:state_enabled="false"/>
<item android:alpha="0.38" android:color="@color/colorPrimary"/>
</selector>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/layout_email_wrapper"
style="@style/MyTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_8"
android:layout_marginStart="@dimen/margin_medium"
android:layout_marginTop="@dimen/margin_ultra_big"
android:layout_marginEnd="@dimen/margin_medium"
android:hint="Password"
app:errorEnabled="true">
它有效,但现在我尝试找到在字段内的值正确的情况下更改边框颜色的方法。
所以我写:
RxTextView.textChanges(emailNew).subscribe(
value -> {
isPasswordCorrect = isValidEmail(value.toString());
if (isPasswordCorrect) {
//???
}
}));
..我不知道该怎么办。我无法动态更改主题,其他解决方案(如setBoxStrokeColor)仅在聚焦字段时更改颜色。
我认为我可以用 focusListener 做一些事情,但我认为这不是好方法。我怎样才能正确?
TextInputEditText:
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress" />
</com.google.android.material.textfield.TextInputLayout>
【问题讨论】:
-
不,我想动态更改 TextInputLayout 的边框颜色。对于当前示例,如果 isValidEmail() 返回 true,我希望在未聚焦模式下使用一种颜色,如果为 false - 另一种。我不能用样式来做到这一点。
标签: android material-design android-textinputlayout material-components-android android-textinputedittext