当 enable=true 时 TextInputLayout 轮廓颜色的颜色不同,然后是黑色,启用 false 时比浅灰色

Posted

技术标签:

【中文标题】当 enable=true 时 TextInputLayout 轮廓颜色的颜色不同,然后是黑色,启用 false 时比浅灰色【英文标题】:Different color of TextInputLayout outline color when enable=true then black and enable false than light gray 【发布时间】:2019-09-19 18:55:27 【问题描述】:

我正在使用TextInputLayout,根据我们的需要,我想更改enable=true时的轮廓颜色和enable=false时的灰色颜色

 <android.support.design.widget.TextInputLayout
            android:id="@+id/state_text_input"
            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
            android:layout_
            android:layout_
            android:layout_marginLeft="8dp"
            android:layout_marginTop="24dp"
            android:layout_marginRight="8dp">

【问题讨论】:

【参考方案1】:

在Material Component Library 中使用TextInputLayout 并在您的布局中使用app:boxStrokeColor 属性。

类似:

<com.google.android.material.textfield.TextInputLayout
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    app:boxStrokeColor="@color/text_input_layout_stroke_color"
    ...>

您可以使用选择器。它是默认值:

<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="?attr/colorOnSurface" android:state_hovered="true"/>
  <item android:alpha="0.12" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
  <item android:alpha="0.38" android:color="?attr/colorOnSurface"/>
</selector>

【讨论】:

以上是关于当 enable=true 时 TextInputLayout 轮廓颜色的颜色不同,然后是黑色,启用 false 时比浅灰色的主要内容,如果未能解决你的问题,请参考以下文章

当文本在 TextInput 中时,如何禁用 react-native AutoCorrect?

当 TextInput 具有焦点时,TouchableOpacity 不可点击

React本机IOS,当TextInput获得焦点时,按钮按下不注册

当验证器返回“无效”时,如何以编程方式在 TextInput 上显示工具提示?

TextInput autoFocus [react native] 上未显示键盘

当 TextInput 有焦点时,如何从键盘后面自动滑出窗口?