Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中为按钮组应用样式_Android_Xml_Button_Styles - Fatal编程技术网

在Android中为按钮组应用样式

在Android中为按钮组应用样式,android,xml,button,styles,Android,Xml,Button,Styles,在我的Android应用程序中,我需要为一组按钮应用样式,而不是为每个按钮单独设置样式。大概是这样的: <?xml version="1.0" encoding="utf-8"?> <!-- put here style="@ststyle/Button_Style" --> <Button android:id="@+id/button1" android:text="@string/b01" /> <Button android:

在我的Android应用程序中,我需要为一组按钮应用样式,而不是为每个按钮单独设置样式。大概是这样的:

<?xml version="1.0" encoding="utf-8"?>
  <!-- put here style="@ststyle/Button_Style" -->
    <Button android:id="@+id/button1" android:text="@string/b01" />
    <Button android:id="@+id/button2" android:text="@string/b02" />
    <Button android:id="@+id/button4" android:text="@string/b03" />
  <!--  end style  -->

您可以像这样为按钮编写样式

style_btn.xml

@可抽出式/btn\U bg
居中
@android:彩色/白色
大胆的
4dp
90dp
将该样式应用于按钮:
您可以像这样为按钮编写样式

style_btn.xml

@可抽出式/btn\U bg
居中
@android:彩色/白色
大胆的
4dp
90dp
将该样式应用于按钮:
如果您需要应用程序中所有按钮的样式,请在应用程序主题样式中提及,然后无需应用每个按钮

<style name="YourTheme" parent="android:Theme.Light">
        <item name="android:buttonStyle">@style/Button</item>
</style>

@样式/按钮
如果需要使用样式来指定按钮
,则应用于每个按钮

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"     
    style="@style/Button"
    android:text="Button" />

如果您需要应用程序中所有按钮的样式,请在应用程序主题样式中提及,然后无需应用每个按钮

<style name="YourTheme" parent="android:Theme.Light">
        <item name="android:buttonStyle">@style/Button</item>
</style>

@样式/按钮
如果需要使用样式来指定按钮
,则应用于每个按钮

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"     
    style="@style/Button"
    android:text="Button" />

我知道我入党晚了,但当我自己试图解决同样的问题时,我偶然发现了这一点

我所做的是:

根据按钮组的方式(例如3),您需要对按钮进行子类化,并创建三个自定义按钮类(见下文)

您可以从自定义类中看到,我已经传递了一个自定义属性。我在my styles.xml中定义了这些样式,并将它们用作参考。请参见下面的my styles.xml:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

    <!-- Customize your theme here. -->
</style>

<style name="theme1">
    <item name="@attr/attrStyle1">@style/CustomButton1</item>
    <item name="@attr/attrStyle2">@style/CustomButton2</item>
    <item name="@attr/attrStyle3">@style/CustomButton3</item>    
   <item name="android:background">@color/warning_yellow_colour</item>
</style>

<style name="CustomButton1" parent = "@android:style/Widget.Button">
    <item name="android:textColor">@color/white_colour</item>
    <item name="android:padding">20dp</item>
    <item name="android:background">@color/banner_background_sensor_colour</item>
</style>

<style name="CustomButton2" parent = "@android:style/Widget.Button">
    <item name="android:textColor">@color/white_colour</item>
    <item name="android:padding">20dp</item>
    <item name="android:background">@color/button_red_colour</item>
</style>

<style name="CustomButton3" parent = "@android:style/Widget.Button">
    <item name="android:textColor">@color/white_colour</item>
    <item name="android:padding">20dp</item>
    <item name="android:background">@color/text_blue_colour</item>
</style>

<attr name="attrStyle1" format="reference"/>
<attr name="attrStyle2" format="reference"/>
<attr name="attrStyle3" format="reference"/>


希望这对某人有好处

我知道我入党晚了,但当我自己试图解决同样的问题时,我偶然发现了这一点

我所做的是:

根据按钮组的方式(例如3),您需要对按钮进行子类化,并创建三个自定义按钮类(见下文)

您可以从自定义类中看到,我已经传递了一个自定义属性。我在my styles.xml中定义了这些样式,并将它们用作参考。请参见下面的my styles.xml:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

    <!-- Customize your theme here. -->
</style>

<style name="theme1">
    <item name="@attr/attrStyle1">@style/CustomButton1</item>
    <item name="@attr/attrStyle2">@style/CustomButton2</item>
    <item name="@attr/attrStyle3">@style/CustomButton3</item>    
   <item name="android:background">@color/warning_yellow_colour</item>
</style>

<style name="CustomButton1" parent = "@android:style/Widget.Button">
    <item name="android:textColor">@color/white_colour</item>
    <item name="android:padding">20dp</item>
    <item name="android:background">@color/banner_background_sensor_colour</item>
</style>

<style name="CustomButton2" parent = "@android:style/Widget.Button">
    <item name="android:textColor">@color/white_colour</item>
    <item name="android:padding">20dp</item>
    <item name="android:background">@color/button_red_colour</item>
</style>

<style name="CustomButton3" parent = "@android:style/Widget.Button">
    <item name="android:textColor">@color/white_colour</item>
    <item name="android:padding">20dp</item>
    <item name="android:background">@color/text_blue_colour</item>
</style>

<attr name="attrStyle1" format="reference"/>
<attr name="attrStyle2" format="reference"/>
<attr name="attrStyle3" format="reference"/>

希望这对某人有好处

 CustomButton1 theme1 = (CustomButton1)findViewById(R.id.theme1);
 CustomButton2 theme2 = (CustomButton2)findViewById(R.id.theme2);
 CustomButton3 theme3 = (CustomButton3)findViewById(R.id.theme3);