我可以为android-support-design小部件设置应用全局自定义样式吗?

我想为Android支持devise(如AppBarLayout,TextInputLayout,FAB …)中的一些小部件定义自定义样式,并将这些样式设置为我的项目的默认样式,就像我可以使用EditText和其他系统小部件一样。 举个例子:

<style name="Theme.MyApp" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:editTextStyle">@style/Theme.MyApp.EditText</item> </style> <style name="Theme.MyApp.EditText" parent="Widget.AppCompat.EditText"> <item name="android:textColor">@color/my_awsome_edittext_color</item> <item name="android:layout_height">wrap_content</item> </style> 

我目前的问题是设置为一个特定的活动,它有自己的主题的AppBarLayout高度=“0dp”。 检查Android支持deviseAppBarLayout源代码,我发现它有一个名为Widget.Design.AppBarLayout的主题,所以我做了:

 <style name="Theme.MyApp.AppBarLayout" parent="Widget.Design.AppBarLayout"> <item name="elevation">0dp</item> </style> 

但是我没有find一个属性来将其设置在我的Theme.MyApp ,就像android:editTextStyle 。 对于TextInputLayout,FAB等来说也是如此。 这些小部件直接从资源中获取主题:

 TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AppBarLayout, R.style.Widget_Design_AppBarLayout); 

那么,真的没有办法用这种forms定义样式? 如果没有,有没有技术上的理由不提供这个function?

Solutions Collecting From Web of "我可以为android-support-design小部件设置应用全局自定义样式吗?"