【发布时间】:2019-06-26 01:01:51
【问题描述】:
这个问题与我将在下面具体提及的另外两个问题相关。不同之处在于,我特别要求一种不使用基础AppTheme 来更改颜色的方法。
在first related question中,建议的解决方案包括设置
<item name="colorAccent">@color/Color Name</item> in AppTheme
不过,它还说要专门为TextInputLayout 制作一个主题/样式,如下所示:
<style name="TextLabel" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="android:textColorHint">@color/Color Name</item>
<item name="android:textSize">20sp</item>
<!-- Label color in TRUE state and bar color FALSE and TRUE State -->
<item name="colorAccent">@color/Color Name</item>
<item name="colorControlNormal">@color/Color Name</item>
<item name="colorControlActivated">@color/Color Name</item>
</style>
所以colorAccent被设置了两次。我尝试了这个并得出结论,TextInputLayout 的特定主题是不必要的,因为我得到了相同的结果,无论有没有它。仅在AppTheme 中设置colorAccent 就足够了。这可行,但不一定是我想要/需要的。
在second related question 中,人们建议再次修改AppTheme 并设置colorAccent(和其他属性)。
但是,我认为这个解决方案并不正确/令人满意。应该有一种方法可以在不改变整个应用程序的样式的情况下专门更改一种颜色,提出第二个问题的人也在他/她的一个 cmets 中批评了这一点。
所以,我在这里特别寻找,是一种解决方案,在 XML 中或以编程方式,专门更改浮动提示/标签和光标的颜色 TextInputLabel+TextInputEditText 组合。基本上我在设置colorAccent时会得到相同的行为。
有没有办法做到这一点,或者 SDK 开发人员是否认真地通过设置 colorAccent 才能做到这一点?
PS 我意识到这可能适用于创建一个新主题,从 AppTheme 继承并将其设置为我想要具有特定颜色的活动。但是,正如我所说,这不是我想要的。
【问题讨论】:
标签: android android-textinputlayout android-textinputedittext android-color