4

在 ICS+ 按钮栏的大多数示例中,即 Google 工程师的这个:https ://gist.github.com/2357306

我看到对这些样式的引用:

style="?android:attr/buttonBarStyle"
style="?android:attr/buttonBarButtonStyle"

于是我打开了Android的attrs.xml,我看到的是这样的:

    <!-- Style for buttons within button bars -->
    <attr name="buttonBarButtonStyle" format="reference" />

    <!-- Style for button bars -->
    <attr name="buttonBarStyle" format="reference" />

而已。所以也许这是一种风格,对吧?这是styles.xml:

    <style name="Widget.Holo.ButtonBar">
        <item name="android:divider">?android:attr/dividerVertical</item>
    </style>

    <style name="Widget.Holo.ButtonBar.Button">
    </style>

嗯?然而 Eclipse 和设备能够像这样渲染它们:

ICS 上的按钮栏

那么它是如何获得正确的尺寸和材料的呢?我需要它们的原因是我想在 Gingerbread 及下面使用这种样式的按钮栏,它缺少该buttonBarStyle属性。因此,它们呈现错误:

GB上的按钮栏

4

1 回答 1

1

这是因为样式继承。Widget.Holo.ButtonBar 也继承了“Widget.Holo”和“Widget”的所有样式。

于 2013-04-29T18:49:32.943 回答