Aka*_*asH 3 android android-activity
我把我的UI部分分成了一个lib,并在那里创建我的样式.
我有一个所有按钮的默认样式,我就是这样设置的.
<style name="MyTheme.Default">
<item name="buttonStyle">@style/button</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我的按钮样式是
<style name="button">
<item name="fontPath">fonts/myfont.ttf</item>
<item name="android:gravity">center</item>
<item name="android:clickable">true</item>
<item name="android:textSize">14sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我希望这个按钮样式应用于所有按钮而不调用@style属性.除了字体外,一切似乎都能正常工作.它没有得到应用.
如果我使用@style属性调用,它似乎应用了字体.
我可以使用textAppearance为应用程序中的所有文本应用字体,这也会更改我的按钮的字体.但这是我不想要的行为.
那么,如何在不使用每个按钮的@style属性的情况下通过我的lib将按钮应用于按钮.
我不能完全记住,但如果AppCompat在Class Path上,我们不会将默认样式输入到Calligraphy中.您可能需要这样做:
new CalligraphyConfig.Builder().setDefaultFontPath("fonts/Roboto-Light.ttf")
.addCustomStyle(AppCompatButton.class, R.attr.buttonStyle)
.setFontAttrId(R.attr.fontPath)
.build());
Run Code Online (Sandbox Code Playgroud)
记下这条线:
.addCustomStyle(AppCompatButton.class, R.attr.buttonStyle)
Run Code Online (Sandbox Code Playgroud)
这将告诉Calligraphy 默认使用buttonStylefor AppCompatButton的.然后你可以使用:
<style name="MyTheme.Default">
<item name="buttonStyle">@style/button</item>
</style>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1932 次 |
| 最近记录: |