gpt4 book ai didi

android - 自定义 TextInputLayout

转载 作者:行者123 更新时间:2023-12-05 00:07:55 33 4
gpt4 key购买 nike

我想让我的 CustomTextInputLayoutWidget.MaterialComponents.TextInputLayout.OutlinedBox 作为默认样式,无需在 XML 中的任何位置定义它

我试过了

class CustomTextInputLayout @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : TextInputLayout(ContextThemeWrapper(context, R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox), attrs, defStyleAttr) {

}

还有这个

class CustomTextInputLayout @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : TextInputLayout(context, attrs, R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox)

但它不起作用。我试过默认的 XML 方式

<com.custom.CustomTextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
...>
<com.google.android.material.textfield.TextInputEditText
...
android:hint="Sample Hint" />
</com.custom.CustomTextInputLayout>

它正在运行。

  • 我在这里错过了什么?
  • 如何在不使用 XML 的情况下为自定义 TextInputLayout 设置默认样式?

最佳答案

这不是您要找的。您可以定义:

public class CustomTextInputLayout @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = R.attr.textInputStyle
) : TextInputLayout(ContextThemeWrapper(context, R.style.Outlined_Theme), attrs, defStyleAttr) { ... }

与:

<style name="Outlined.Theme" parent="">
<item name="textInputStyle">@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox</item>
</style>

然后在你的布局中使用:

 <com.example.quicksample.CustomTextInputLayout
....
android:hint="Sample">

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

</com.example.quicksample.CustomTextInputLayout>

enter image description here

您的代码不起作用,因为 ContextThemeWrapper(context, R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox) 第二个参数必须是属性主题而不是样式(它与 TextInputLayout 相同(上下文,属性,R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox))

关于android - 自定义 TextInputLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62463203/

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