【问题标题】:How to change TextInputEditText style based on Active state如何根据活动状态更改 TextInputEditText 样式
【发布时间】:2021-02-18 22:31:13
【问题描述】:

我正在处理带有状态捕获的材料 TextInputEditText

上面的投手说TextInputEditText的行为基于它的状态。

我们可以使用以下样式

@style/Widget.MaterialComponents.TextInputLayout.FilledBox

@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox

我的问题是有不同的状态,如休息状态、焦点状态、活动状态、错误状态和禁用状态我们如何改变TextInputEditText 风格 基于这些状态。 提供示例代码非常感谢

【问题讨论】:

  • 您不能以编程方式更改样式,但您可以在运行时更改每个属性(笔触、背景、颜色...)

标签: android android-layout material-design material-components-android


【解决方案1】:

很遗憾,没有直接的方法来动态更新样式。

如果您打算动态更改 TextInputEditText 的样式并且您可以使用受信任的库,那么我建议您使用 Paris from Airbnb.

Paris 允许您以编程方式定义样式并将其应用于 Android 视图,包括自定义属性。

你可以设置简单的样式

myView.style(R.style.MyStyle)

试试看,如果它解决了您的问题,请告诉我。

【讨论】:

    【解决方案2】:

    您可以更改这些的颜色,例如,输入下的那一行。您可以通过更改 colors.xml 资源中的颜色来更改它们。

    【讨论】:

    • 所以它会在运行时根据状态改变样式?
    • 是的,它会在启动时加载颜色。如果您在 Android Studio 的预览中看不到新的编辑。您可以关闭并打开它或更改预览主题。
    • 是的,我们可以改变颜色。但我的问题是我们可以改变风格吗?
    猜你喜欢
    • 2021-03-27
    • 1970-01-01
    • 2020-10-08
    • 2014-08-30
    • 2016-07-05
    • 1970-01-01
    • 2020-12-31
    • 2016-07-19
    • 1970-01-01
    相关资源
    最近更新 更多