마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

테마를 적용하는데 왜 상태바는 적용이 안될까요?

0 추천

Theme.xml

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.WriteWeight" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <!-- 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.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" >
        <item name="colorPrimary">@color/light_green</item>
        <item name="colorPrimaryVariant">@color/light_green_dark</item>
        <item name="colorPrimaryDark">@color/light_green_dark</item>
    </style>

    <style name="Theme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light">
        <item name="colorPrimary">@color/light_green</item>
        <item name="colorPrimaryVariant">@color/light_green_dark</item>
        <item name="colorPrimaryDark">@color/light_green_dark</item>
    </style>
</resources>

 

Main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:id="@+id/coordinator"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintTop_toTopOf="parent">
        <com.google.android.material.appbar.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            app:elevation="0dp"
            android:theme="@style/Theme.AppBarOverlay">
            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:title="목 록"
                app:titleTextColor="@color/black"
                app:titleMarginStart="30dp"
                android:paddingRight="30dp"
                android:theme="@style/Theme.PopupOverlay"/>
        </com.google.android.material.appbar.AppBarLayout>

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_constraintTop_toBottomOf="@id/toolbar"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
       app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">

            <TextView
                android:id="@+id/main_notification_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="운동할 부위를 선택하세요"
                android:textSize="16dp"
                android:gravity="center"
                android:layout_gravity="center"/>

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/rcv_dailyrecord"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginRight="10dp"
                android:layout_marginLeft="10dp"
                android:scrollbars="vertical" />
        </FrameLayout>
    </androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

 

기본 테마를 NoActionBar로 설정하고.. 메인 xml에 직접 액션바를 정의하고

Theme에도 따로 테마를 정의해서 색상도 지정해준후 액션바에 theme을 설정해줬는데..

colorPrimary 색상 그러니까 액션바는 설정이되는데 

상태바는 안바뀌는데..뭐가 문제인걸까요?ㅜ 액션바의 색상은 지정안하고 상태바의 색상만 지정해주고픈데..

 상태바 색상은 여전히 기본 theme인 

Theme.WriteWeight

theme을 따르네요.. 여기 정의된 colorPrimaryVariant가 상태바의 이전의 colorPrimaryDark색상같은데

저길 바꾸면 상태바에 적용되네요..

근데 제가 만든 theme에는 colorPrimaryVariant을 지정해줘도 왜 안될까요..

이전부터 Theme 관해 질문드리고있는데 여간 헷갈리는게 아니네요 ㅠㅠ

 

codeslave (3,940 포인트) 님이 2021년 1월 1일 질문

1개의 답변

0 추천

이 속성을 사용해 보세요.

 <item name="android:statusBarColor">@color/color_primaryDark</item>

 

spark (226,420 포인트) 님이 2021년 1월 1일 답변
...