gpt4 book ai didi

android - 提示的字体系列在 TextInputLayout 中无法正常工作

转载 作者:行者123 更新时间:2023-12-05 02:50:32 30 4
gpt4 key购买 nike

我正在尝试为提示和文本创建不同的字体样式。类似于 this .

到目前为止我的代码:

 <com.google.android.material.textfield.TextInputLayout
android:id="@+id/filledTextField2"
style="@style/Widget.TextInputLayout.Primary"
android:layout_width="233dp"
android:layout_height="93dp"
android:layout_marginTop="216dp"
android:hint="FIRST NAME"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/InputTextFont"
android:textSize="@dimen/text_input_font_size" />

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

样式.xml

 <style name="Widget.TextInputLayout.Primary" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="hintTextAppearance">@style/TextAppearance.App.Caption</item>
<item name="boxStrokeColor">@color/colorPrimary</item>
<item name="android:textColorHint">@color/colorSecondary</item>
<item name="hintTextColor">@color/colorPrimary</item>
<item name="boxStrokeWidth">@dimen/text_input_box_width</item>
</style>

<style name="TextAppearance.App.Caption" parent="TextAppearance.AppCompat.Caption">
<item name="fontFamily">@font/poppins_bold</item>
<item name="android:fontFamily">@font/poppins_bold</item>
<item name="android:textStyle">normal</item>
<item name="android:textAllCaps">true</item>
<item name="android:textSize">15sp</item>
</style>

<style name="InputTextFont" parent = "">
<item name="fontFamily">@font/poppins_regular</item>
<item name="android:fontFamily">@font/poppins_regular</item>
<item name="android:textSize">@dimen/text_input_font_size</item>
</style>

稍微玩了一下代码后,“TextAppearance.App.Caption”中的字体大小似乎可以正常工作,这意味着提示的字体大小可以正确更改,但字体系列没有。但是,如果我在“TextInputEditText”中使用“android:fontFamily="@font/poppins_bold",它会起作用,但提示和文本都会变得相同。

我的问题是如何覆盖它们以使用自定义字体?如果有人帮助我,那将是一个很大的帮助! TIA!

最佳答案

根据 this thread , 在 XML 文件中设置字体将不起作用,因为它总是被内部 EditText 样式覆盖。

目前在 Kotlin 中的临时解决方法是在创建布局后设置 HintTextAppearance:

yourInputLayout.doOnLayout { 
yourInputLayout
.setHintTextAppearance(R.style.YourHintStyle)
}

如果您要重用它,最好将它变成一个扩展方法:

fun TextInputLayout.setHintStyle(id: Int) {
doOnLayout {
setHintTextAppearance(id)
}
}

用法:

yourInputLayout.setHintStyle(R.style.YourHintStyle)

关于android - 提示的字体系列在 TextInputLayout 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63645916/

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