在我的项目(具有AppCompat支持的Target API 21)中,我需要扩展EditText
类。我的问题是MyEditText
类不继承自定义的EditText
样式:
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar" >
<item name="colorPrimary">@color/primary</item>
<item name="colorControlNormal">@color/grey_light</item>
<item name="colorControlActivated">@color/primary</item>
<item name="colorControlHighlight">@color/primary</item>
</style>
带有
@color/primary
绿色截屏:
EditText
的EditText
未聚焦(启用)MyEditText
未聚焦(启用)我的问题是:如何继承
EditText
中的默认MyEditText
样式? 最佳答案
有一种非常非常非常简单的方法。
与其继承自android.widget.EditText自定义EditText,不如继承此类并查看其是否有效:
android.support.v7.internal.widget.TintEditText
链接到类(class):TintEditText.java
阅读该类(class)的Javadoc,他说:
/**
* An tint aware {@link android.widget.EditText}.
* <p>
* This will automatically be used when you use {@link android.widget.EditText} in your
* layouts. You should only need to manually use this class when writing custom views.
*/
在此页面的大部分内容中,(Using Support Library APIs)具有的注意事项,它是:使用支持库中的类时,请确保您从适当的软件包中导入了该类。例如,当应用ActionBar类时:
使用支持库时的
我对此进行了解释,也就是说,如果您使用的是支持库,请始终尝试导入或继承相应的程序包。 (没有什么比这写的大声笑了:D)