Android:API-16的样式泄漏到每个更高的API版本
我有两个文件夹:values和values-v16。values文件夹中styles.xml文件的内容如下:Android:API-16的样式泄漏到每个更高的API版本,android,android-styles,Android,Android Styles,我有两个文件夹:values和values-v16。values文件夹中styles.xml文件的内容如下: <style name="Widget.App.SearcherButtonWithIcon" parent="Widget.AppCompat.Button.Borderless"> <item name="android:paddingLeft">16dp</item> </style> 问题是后一个带有26dp填充的应用程序
<style name="Widget.App.SearcherButtonWithIcon" parent="Widget.AppCompat.Button.Borderless">
<item name="android:paddingLeft">16dp</item>
</style>
问题是后一个带有26dp填充的应用程序将应用于每个API版本中的每个视图。为什么会这样,以及如何修复它?这是预期的行为。values-v16表示支持api 16或更高版本的设备。有关这方面的更多信息,请参阅文档: 如果您只希望api 16使用该值,请在api 17中使用默认值再次覆盖它 以下是我推荐的方法:
/res/values/styles.xml
<dimen name="searcher_padding_left_default">16dp</dimen>
<dimen name="searcher_padding_left_v16">26dp</dimen>
<dimen name="searcher_padding_left">@dimen/searcher_padding_left_default</dimen>
/res/values-v16/styles.xml
<dimen name="searcher_padding_left">@dimen/searcher_padding_left_v16</dimen>
/res/values-v17/styles.xml
<dimen name="searcher_padding_left">@dimen/searcher_padding_left_default</dimen>
这样,您只需在一个位置指定值,这可能有助于将来保持所有值的同步。这是预期的行为。values-v16表示支持api 16或更高版本的设备。有关这方面的更多信息,请参阅文档: 如果您只希望api 16使用该值,请在api 17中使用默认值再次覆盖它 以下是我推荐的方法:
/res/values/styles.xml
<dimen name="searcher_padding_left_default">16dp</dimen>
<dimen name="searcher_padding_left_v16">26dp</dimen>
<dimen name="searcher_padding_left">@dimen/searcher_padding_left_default</dimen>
/res/values-v16/styles.xml
<dimen name="searcher_padding_left">@dimen/searcher_padding_left_v16</dimen>
/res/values-v17/styles.xml
<dimen name="searcher_padding_left">@dimen/searcher_padding_left_default</dimen>
这样,您只需在一个位置指定值,这可能有助于将来保持所有值的同步