样式,minHeight/maxHeight:我无法让maxHeight覆盖主题minHeight

Ted*_*Ted 6 android

我认为更多的"全球"风格总是被更多的"本地"风格所覆盖.例如,如果我重新定义所有按钮以使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时,没有任何反应.

我错过了什么?

Che*_*mon 5

你的ButtonHeader样式不应该覆盖minHeight属性吗?看起来你最终得到minHeight = 60dp和maxHeight = 10dp,而minHeight获胜.如果你明确地将minHeight设置为其他东西,那么你应该没有这个问题.