【发布时间】:2019-04-23 15:12:51
【问题描述】:
我将TextInputEditText 小部件放置在白色背景上。当片段第一次加载时,小部件没有焦点。小部件周围的边框是白色的(或几乎是白色的),因此它在白色背景上是不可见的。这是该小部件的屏幕截图,绘制在黑色背景上以进行对比:
只要我点击小部件,边框就会变成我的原色,这正是我想要的。这是激活小部件后的类似屏幕截图。
我试图通过一种风格来控制这些颜色,我已经尝试了我能想到的一切,但我不知道如何调整那种颜色。这是我的风格(请随意嘲笑各种尝试):
<style name="MyTextInputLayout" parent="Base.Widget.MaterialComponents.TextInputLayout">
<item name="android:colorBackground">@android:color/black</item>
<item name="android:textColorHint">@color/colorPrimary</item>
<item name="android:paddingStart">16dp</item>
<item name="android:paddingEnd">16dp</item>
<item name="android:colorControlActivated">@android:color/black</item>
<item name="android:colorControlNormal">@android:color/black</item>
<item name="android:colorControlHighlight">@android:color/black</item>
<item name="android:backgroundTint">@android:color/black</item>
<item name="android:colorAccent">@android:color/black</item>
</style>
<style name="MyTextInputEditText" parent="ThemeOverlay.MaterialComponents.TextInputEditText">
<item name="android:textColor">@android:color/black</item>
<item name="android:colorBackground">@android:color/black</item>
<item name="android:colorControlActivated">@android:color/black</item>
<item name="android:colorControlNormal">@android:color/black</item>
<item name="android:colorControlHighlight">@android:color/black</item>
<item name="android:backgroundTint">@android:color/black</item>
<item name="android:colorAccent">@android:color/black</item>
</style>
最后,布局的 xml 以防万一:
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
style="@style/MyTextInputLayout">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/reg_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/username"
style="@style/MyTextInputEditText"/>
</com.google.android.material.textfield.TextInputLayout>
当小部件处于非活动状态(即没有焦点)时,如何更改此边框颜色?
【问题讨论】:
-
您是否尝试将
textInputLayout属性赋予textInputEditText?喜欢MaterialComponents.TextInputLayout.OutlinedBox.Dense -
尝试将属性
<item name="colorControlNormal">#c5c5c5</item> <item name="colorControlActivated">@color/accent</item> <item name="colorControlHighlight">@color/accent</item>设置为主题。