0

有没有办法控制一组按钮在 android 应用程序中的外观,而不是单独控制?

例如,如果我有 8 个按钮,并且我想将它们的所有 minHeight 更改为 50dp。还是我必须单独更改每个值?在 style.xml 文件或其他任何地方。

谢谢!

<Button
                android:id="@+id/btnWhite"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="2dp"
                android:background="#E0E0EB"
                android:gravity="center"
                android:minHeight="54dp"
                android:minWidth="59dp"
                android:onClick="@android:color/white"
                android:padding="0dp"
                android:text="White"
                android:textStyle="bold" />

            <Button
                android:id="@+id/btnGrey"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="2dp"
                android:background="#E0E0EB"
                android:gravity="center"
                android:minHeight="54dp"
                android:minWidth="59dp"
                android:padding="0dp"
                android:text="Grey"
                android:textStyle="bold" />
4

3 回答 3

1

我知道的唯一方法是通过 Java 实现自定义按钮

(在 com.my.view 包下)

class Button myButton extends Button {
    // Define your button here
}

在您的 .xml 文件中,

<com.my.view.myButton>
    android:id="@+id/button_01"
</com.my.view.myButton>

<com.my.view.myButton>
    android:id="@+id/button_02"
</com.my.view.myButton>
于 2013-11-07T23:17:55.260 回答
0

在您的style.xml文件中,创建一个类似于以下内容的新样式:

<style name="MyButtonStyle1" parent="android:style/Widget.Button">
    <item name="android:background">#e0e0eb</item>
    <item name="android:minWidth">54dip</item>
    <item name="android:minHeight">59dip</item>
    <item name="android:padding">0dip</item>
    <item name="android:textStyle">bold</item>
    <!-- add more attributes here -->
</style>

然后,在您的活动的内容布局 XML 文件中,将您的自定义样式应用到按钮小部件,如下所示:

<Button
    style="@style/MyButtonStyle1"
    android:id="@android:id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
/>
于 2013-11-07T23:46:02.810 回答
0

在您的 res/values/styles.xml 文件中找到您的 AppTheme 并声明一个 buttonStyle 项目:

<style name="AppTheme" parent="AppBaseTheme">
  <item name="android:buttonStyle">@style/myButton</item>
</style>

然后通过扩展 android:style/Widget.Button 来声明您的自定义按钮样式:

<style name="myButton" parent="@android:style/Widget.Button">
  <item name="android:background">#f81</item>
  <item name="android:textColor">#a39</item>
  <item name="android:text">"Click Me"</item>
</style>

这应该会更改应用程序中所有按钮的样式。

另请注意,您的应用程序主题在您的 ApplicationManifest.xml 中定义,并且是

android:theme="@style/AppTheme"

默认情况下,这就是我们更改“AppTheme”样式的原因。

于 2013-11-08T00:04:04.797 回答