Home > Mobile >  Button background color is not showing in my android activity
Button background color is not showing in my android activity

Time:04-14

I created a calculator activity as a part of a bigger app, and created a theme, and style for different components. yet, when I assign a background color of orange to the "buttonOperator" styles it doesn't show in the activity on the buttons that are using this style, appreciate explaining to me what i did wrong and maybe how/what tools can be used to troubleshoot such layout problems in android studio if such tools or methods are available.

below is the code relevant to the issue:

calculatorActivity.xml

<\?xml version="1.0" encoding="utf-8"?>
    <LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/light_Black"
    android:orientation="vertical"
    android:theme="@style/Theme.UnitConverterAdvance.Calculator"
    tools:context=".CalculatorActivity">

    <LinearLayout style="@style/buttonRow">

        <Button
            style="@style/buttonNumber"
            android:text="@string/button_7" />

        <Button
            style="@style/buttonNumber"
            android:text="@string/button_8" />

        <Button
            style="@style/buttonNumber"
            android:text="@string/button_9" />

        <Button
            style="@style/buttonOperator"
            android:text="@string/button_division" />
    </LinearLayout>

    <LinearLayout style="@style/buttonRow">

        <Button
            style="@style/buttonNumber"
            android:text="@string/button_0" />

        <Button
            style="@style/buttonNumber"
            android:text="@string/button_dot" />

        <Button
            style="@style/buttonOperator"
            android:text="@string/button_equal" />

        <Button
            style="@style/buttonOperator"
            android:text="@string/button_plus" />
    </LinearLayout>
</LinearLayout>

Style.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="buttonRow">
        <item name="android:layout_weight">1</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">0dp</item>
    </style>

    <style name="buttonNumber">
        <item name="android:layout_weight">1</item>
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_height">match_parent</item>
        <item name="android:background">@null</item>
        <item name="android:textSize">25sp</item>
        <item name="android:textColor">@color/white</item>
    </style>

    <style name="buttonOperator">
        <item name="android:layout_weight">1</item>
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_height">match_parent</item>       
        <item name="backgroundColor">@color/orange</item>
        <item name="android:textSize">25sp</item>
        <item name="android:textColor">@color/white</item>
    </style>
</resources>

Theme.xml

<resources xmlns:tools="http://schemas.android.com/tools">

<style name="Theme.UnitConverterAdvance" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/purple_500</item>
    <item name="colorPrimaryVariant">@color/purple_700</item>
    <item name="colorOnPrimary">@color/white</item>
    <!-- Secondary brand color. -->
    <item name="colorSecondary">@color/teal_200</item>
    <item name="colorSecondaryVariant">@color/teal_700</item>
    <item name="colorOnSecondary">@color/black</item>
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
    <!-- Customize your theme here. -->
</style>

<style name="Theme.UnitConverterAdvance.Calculator" parent="Theme.AppCompat">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/light_Black</item>
    <item name="colorPrimaryVariant">@color/orange</item>
    <item name="colorOnPrimary">@color/white</item>
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>

</resources>

CodePudding user response:

Try to create new layouts in the drawable folder: drawable>new>new resource file Then create your own layout. Here is an example

<corners android:radius="20dp"/>
<solid android:color="@color/purple_700"/>

At the end add this line with your layout to the button:

android:background="@drawable/yourstyle"

CodePudding user response:

////Try to give manually in .xml file it. It works fine.

           <Button
            android:id="@ id/btn_proceToPay"
            android:layout_width="match_parent"
            android:layout_height="56dp"
            android:layout_below="@id/rl3"
            android:layout_marginTop="20dp"
            android:background="@color/primaryBackgroung"
            android:enabled="false"
            android:text="Proceed To Pay"
            android:textAllCaps="false"
            android:textColor="@color/whiteText"
            android:textSize="16sp"
            android:textStyle="bold" />
  • Related