我认为更多的"全球"风格总是被更多的"本地"风格所覆盖.例如,如果我重新定义所有按钮以使textSize = 40dip(将该样式应用为应用程序的主题),然后将另一个样式应用于显示textSize = 10dip的特定按钮,则该特定按钮应获得10dip textSize.
这通常就是它的工作方式.但不是说maxHeight.这是场景:
在我的styles.xml中,我有一个Style,我继承默认Button并更改textSize和minHeight,然后另一个Style设置其他值(但也从Button继承),如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Button" parent="@android:style/Widget.Button">
<item name="android:textSize">26dip</item>
<item name="android:minHeight">60dip</item>
</style>
<style name="ButtonHeader" parent="@android:style/Widget.Button">
<item name="android:textSize">18dip</item>
<item name="android:minWidth">70dip</item>
<item name="android:maxHeight">10dip</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
我将第一个Style应用为我的Activity的主题,使所有按钮变大(minHeight = 60dip).但我有一个"标题"(我有一些其他按钮),我不希望有60dip的minHeight,对于那些我想使用ButtonHeader的按钮,将maxHeight设置为10dip.
在我的header.xml中,它看起来像这样:
<Button style="@style/ButtonHeader" android:text="UPP" android:id="@+id/Header_Button_UPP" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button>
<Button style="@style/ButtonHeader" android:text="ALT" android:id="@+id/Header_Button_ALT" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button>
<Button style="@style/ButtonHeader" android:text="NAV" android:id="@+id/Header_Button_NAV" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button>
<Button style="@style/ButtonHeader" android:text="HIS" android:id="@+id/Header_Button_HIS" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button>
Run Code Online (Sandbox Code Playgroud)
我特别设计了按钮的样式,覆盖了"全局"主题.它适用于某些部分; 这些标题按钮的textSize正确设置为18dip,但忽略maxHeight - 这些按钮的高度也增加到60dip.
如果我,在ButtonHeader的样式中,设置android:minHeight ="100dip",标题中的按钮将增加到100dip,覆盖主题.但是,如上所述,当我有android:maxHeight时,没有任何反应.
我错过了什么?
你的ButtonHeader样式不应该覆盖minHeight属性吗?看起来你最终得到minHeight = 60dp和maxHeight = 10dp,而minHeight获胜.如果你明确地将minHeight设置为其他东西,那么你应该没有这个问题.
| 归档时间: |
|
| 查看次数: |
9630 次 |
| 最近记录: |