我可以在Android中定义包含样式的样式吗?

时间:2015-11-15 20:41:28

标签: android android-resources android-styles

我创建了以下样式:

<style name="wrap_content">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
</style>

我想创建一个使用此样式的第二种样式。我知道我可以做到以下几点:

<style name="cycle_radio_button" parent="wrap_content">
    <item name="android:layout_marginStart">1dp</item>
    <item name="android:layout_marginEnd">1dp</item>
</style>

但有没有办法做以下事情:

<style name="cycle_radio_button">
    <item name="android:layout_marginStart">1dp</item>
    <item name="android:layout_marginEnd">1dp</item>
    <item name="style">@style/wrap_content</item>
</style>

如果可以的话,基于我定义的其他多种样式创建样式会更容易和更清晰,而不必创建一系列继承样式。

1 个答案:

答案 0 :(得分:2)

您无法从Android中的多个xml样式继承。最接近的是继承特定类型视图的样式。例如:

<style name="style1" parent="Theme.AppCompat.Light">
    <item name="android:listViewStyle">@style/wrap_content</item>
    <item name="android:mapViewStyle">@style/AppTheme</item>
</style>

现在,任何继承自“style1”的列表视图或地图视图都将继承“wrap_content”中的样式。

name="android:listViewStyle"之类的属性仅适用于特定的视图类型,因此这不会完全符合您的要求。