如何在 TextInputLayout unfocus 中更改边框和颜色?
how to change border and color in TextInputLayout unfocus?
如何在 TextInputLayout
unfocus 中更改边框和颜色?
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_height="wrap_content"
app:boxStrokeWidth="4dp"
app:boxStrokeColor="@color/colorPrimary"
app:layout_constraintTop_toBottomOf="@id/a">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:hint="@string/app_name"
android:textColorHint="@color/colorPrimary"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
我试试 :
app:boxStrokeWidth="4dp"
app:boxStrokeColor="@color/colorPrimary"
但是,无法在不聚焦的情况下工作
更改边框;
为 TextInputLayout 的背景
使用可绘制选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/colorRipple">
<item
android:state_enabled="true"
android:state_focused="true">
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
<stroke android:color="#aA0000" android:width="1dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="#dddddd" />
<stroke android:color="#ff00ff" android:width="1dp"/>
</shape>
</item>
</selector>
更改文字颜色;
为 TextInputEditText 的文本颜色
使用可绘制选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#333333" android:state_selected="true" />
<item android:color="#333333" android:state_focused="true" />
<item android:color="#009900" /> <!-- default case -->
</selector>
如果你想在 focused/unfocused 模式下有不同的笔划宽度,你可以使用 boxStrokeWidth
和 boxStrokeWidthFocused
个属性。
<!-- The value to use for the box's stroke when in outline box mode,
or for the underline stroke in filled mode. -->
<attr format="dimension" name="boxStrokeWidth"/>
<!-- The value to use for the focused box's stroke when in outline box mode,
or for the focused underline stroke in filled mode.. -->
<attr format="dimension" name="boxStrokeWidthFocused"/>
类似于:
<com.google.android.material.textfield.TextInputLayout
app:boxStrokeWidthFocused="4dp"
app:boxStrokeWidth="1dp"
app:boxStrokeColor="@color/text_input_layout_stroke_color"
..>
对于描边颜色,您可以定义一个选择器,例如:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/..." android:state_focused="true"/>
<item android:alpha="0.87" android:color="@color/..." android:state_hovered="true"/>
<item android:color="@color/.." android:state_enabled="false"/>
<item android:color="@color/..."/> <!--unfocused-->
</selector>
注意: boxStrokeWidthFocused
至少需要 1.2.0-alpha04
.
版本
如何在 TextInputLayout
unfocus 中更改边框和颜色?
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_height="wrap_content"
app:boxStrokeWidth="4dp"
app:boxStrokeColor="@color/colorPrimary"
app:layout_constraintTop_toBottomOf="@id/a">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:hint="@string/app_name"
android:textColorHint="@color/colorPrimary"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
我试试 :
app:boxStrokeWidth="4dp"
app:boxStrokeColor="@color/colorPrimary"
但是,无法在不聚焦的情况下工作
更改边框; 为 TextInputLayout 的背景
使用可绘制选择器<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/colorRipple">
<item
android:state_enabled="true"
android:state_focused="true">
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
<stroke android:color="#aA0000" android:width="1dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="#dddddd" />
<stroke android:color="#ff00ff" android:width="1dp"/>
</shape>
</item>
</selector>
更改文字颜色; 为 TextInputEditText 的文本颜色
使用可绘制选择器<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#333333" android:state_selected="true" />
<item android:color="#333333" android:state_focused="true" />
<item android:color="#009900" /> <!-- default case -->
</selector>
如果你想在 focused/unfocused 模式下有不同的笔划宽度,你可以使用 boxStrokeWidth
和 boxStrokeWidthFocused
个属性。
<!-- The value to use for the box's stroke when in outline box mode,
or for the underline stroke in filled mode. -->
<attr format="dimension" name="boxStrokeWidth"/>
<!-- The value to use for the focused box's stroke when in outline box mode,
or for the focused underline stroke in filled mode.. -->
<attr format="dimension" name="boxStrokeWidthFocused"/>
类似于:
<com.google.android.material.textfield.TextInputLayout
app:boxStrokeWidthFocused="4dp"
app:boxStrokeWidth="1dp"
app:boxStrokeColor="@color/text_input_layout_stroke_color"
..>
对于描边颜色,您可以定义一个选择器,例如:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/..." android:state_focused="true"/>
<item android:alpha="0.87" android:color="@color/..." android:state_hovered="true"/>
<item android:color="@color/.." android:state_enabled="false"/>
<item android:color="@color/..."/> <!--unfocused-->
</selector>
注意: boxStrokeWidthFocused
至少需要 1.2.0-alpha04
.