gpt4 book ai didi

android - 更改 Theme.MaterialComponents 的 TextInputLayout.OutlinedBox 的光标颜色

转载 作者:行者123 更新时间:2023-12-05 05:04:37 45 4
gpt4 key购买 nike

在我的应用程序中,我使用 textfield.TextInputLayout 和 textfield.TextInputEditText 作为输入文本,而不是通常的 EditText。这是我的观点:

 <com.google.android.material.textfield.TextInputLayout
android:id="@+id/inputId"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/fab_margin"
android:layout_marginEnd="@dimen/fab_margin"
android:focusedByDefault="false"
android:enabled="true"
android:hint="@string/userHint"
android:textColor="@color/letter_medium_emphasis"
app:boxCornerRadiusBottomEnd="@dimen/OutLinedBoxCorners"
app:boxCornerRadiusBottomStart="@dimen/OutLinedBoxCorners"
app:boxCornerRadiusTopEnd="@dimen/OutLinedBoxCorners"
app:boxCornerRadiusTopStart="@dimen/OutLinedBoxCorners"
app:boxStrokeColor="@color/letter_medium_emphasis"
app:counterEnabled="true"
app:counterMaxLength="20"
app:helperText="@string/rememberId"
app:helperTextEnabled="true"
app:hintTextColor="@color/letter_medium_emphasis"
app:startIconDrawable="@drawable/ic_account_circle_black_24dp"
app:startIconTint="@color/primary_dark">

<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:inputType="text"
android:fontFamily="@font/poppins_medium" />

</com.google.android.material.textfield.TextInputLayout>

一切都是正确的,除了一件事,光标的颜色和文本选择器。我附上一张图片来更好地解释我自己。

enter image description here

我一直在阅读,显然这是发生在更多人身上的事情。光标在那里,但始终为白色。

enter image description here

我找到了解决方案,但它们都适用于 FilledBox.Dense 类型。我正在使用 OutlinedBox,但没有任何效果。我找到的最佳解决方案是 THIS

问题是,正如我所说,它适用于 FilledBox.Dense 类型,而不适用于 OutlinedBox。

有人可以告诉我如何调整此解决方案或如何以其他方式更改颜色吗?

我曾尝试使用 OutlinedBox 类型对其进行适配,但没有成功。

提前致谢。

最佳答案

是的,这绝对是谷歌代码中的另一个错误,唉。但这是我正在使用的解决方法。

定义您的样式(通常在 styles.xml 中):

    <style name="Widget.MaterialComponents.TextInputLayout.OutlinedBox.MyStyle">
<item name="shapeAppearance">@style/ShapeAppearance.MaterialComponents.Onboarding</item>
<item name="boxStrokeColor">@color/onboarding_statelists</item>
<item name="hintTextColor">@color/colorOnPrimary</item>
<item name="colorControlActivated">@color/colorAccent</item>
</style>

然后(这非常重要)在布局文件中的小部件声明中,您必须将该样式引用为主题 样式!

        <com.google.android.material.textfield.TextInputLayout
android:id="@+id/name_et"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="type your name"

android:theme="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.MyStyle"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.MyStyle"

app:layout_constraintEnd_toEndOf="@id/end"
app:layout_constraintStart_toStartOf="@id/start"
app:layout_constraintTop_toBottomOf="@id/bottomLabel">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</com.google.android.material.textfield.TextInputLayout>

您真的不应该在这里将其定义为主题。在我的测试中,你必须两者都做!肯定有一些问题,但这对我有用。祝你好运!

关于android - 更改 Theme.MaterialComponents 的 TextInputLayout.OutlinedBox 的光标颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60981402/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com