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

时间:2010-01-07 01:19:18

标签: 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>    

我将第一个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>

我具体设计按钮样式,覆盖“全局”主题。它适用于某些部分;这些标题按钮的textSize正确设置为18dip,但忽略maxHeight - 这些按钮的高度也增加到60dip。

如果我在ButtonHeader的样式中设置android:minHeight =“100dip”,标题中的按钮将增加到100dip,覆盖主题。 但是,如上所述,当我有android:maxHeight时,没有任何反应。

我错过了什么?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

因为我不知道你有两种不同的Button(Button - HeaderButton)样式,你在HeaderButton样式中设置minHieght和MaxHeight(最大高度正在工作),现在MinHeight面临一个问题,

我实现了你的代码并发现你的MinHeight不适合18dip文本大小,所以你应该减少你的tex大小或增加minheight大小

让我知道,有什么事发生在你身上