TextInputLayout 样式
TextInputLayout styling
我的习惯有问题 TextInputLayout
。这是我的代码
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/phone"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:theme="@style/CustomTextInputLayout"
android:hint="@string/phone_number"
android:layout_marginTop="8dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
app:startIconDrawable="@drawable/account"
android:background="@color/bg_light_gray"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/page_description">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="?attr/listPreferredItemHeight"
android:background="@color/bg_light_gray"
android:inputType="phone"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>
这是我在 style.xml
文件中的代码
<style name="CustomTextInputLayout" parent="Widget.Design.TextInputLayout">
<item name="errorTextAppearance">@style/ErrorText</item>
<item name="colorControlNormal">@color/green_txt</item>
<item name="colorControlActivated">@color/orange</item>
<item name="colorControlHighlight">@color/orange</item>
</style>
我想将TextInputLayout
的基线颜色设为橙色,但现在是灰色。另外,我放置了一个图标,它的原始颜色为橙色,但放置后变成了深灰色。现在我不明白为什么会这样以及如何解决这个问题。有人可以帮我吗?
I want to make base line color of TextInputLayout to orange
只需使用Material theme(例如Widget.MaterialComponents.TextInputLayout.FilledBox
)app:boxStrokeColor
属性来改变颜色。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/custom_end_icon"
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
app:boxStrokeColor="@color/text_input_selector
选择器类似于:
<?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="?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/colorAccent"/>
</selector>
Also I place an icon, which has its original color orange, but after placing it became dark gray.
使用 app:endIconTint
属性为结束图标应用颜色或颜色选择器。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/custom_end_icon"
android:hint="Hint text"
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
app:boxStrokeColor="@color/text_input_selector"
app:endIconMode="custom"
app:endIconDrawable="@drawable/ic_add_24px"
app:endIconTint="@color/text_input_selector"
我的习惯有问题 TextInputLayout
。这是我的代码
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/phone"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:theme="@style/CustomTextInputLayout"
android:hint="@string/phone_number"
android:layout_marginTop="8dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
app:startIconDrawable="@drawable/account"
android:background="@color/bg_light_gray"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/page_description">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="?attr/listPreferredItemHeight"
android:background="@color/bg_light_gray"
android:inputType="phone"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>
这是我在 style.xml
文件中的代码
<style name="CustomTextInputLayout" parent="Widget.Design.TextInputLayout">
<item name="errorTextAppearance">@style/ErrorText</item>
<item name="colorControlNormal">@color/green_txt</item>
<item name="colorControlActivated">@color/orange</item>
<item name="colorControlHighlight">@color/orange</item>
</style>
我想将TextInputLayout
的基线颜色设为橙色,但现在是灰色。另外,我放置了一个图标,它的原始颜色为橙色,但放置后变成了深灰色。现在我不明白为什么会这样以及如何解决这个问题。有人可以帮我吗?
I want to make base line color of TextInputLayout to orange
只需使用Material theme(例如Widget.MaterialComponents.TextInputLayout.FilledBox
)app:boxStrokeColor
属性来改变颜色。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/custom_end_icon"
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
app:boxStrokeColor="@color/text_input_selector
选择器类似于:
<?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="?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/colorAccent"/>
</selector>
Also I place an icon, which has its original color orange, but after placing it became dark gray.
使用 app:endIconTint
属性为结束图标应用颜色或颜色选择器。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/custom_end_icon"
android:hint="Hint text"
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
app:boxStrokeColor="@color/text_input_selector"
app:endIconMode="custom"
app:endIconDrawable="@drawable/ic_add_24px"
app:endIconTint="@color/text_input_selector"