secondaryTextColor in custom styles not work

0

This is my main xml layout:

    <?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
    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:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="00dp"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <FrameLayout
        android:id="@+id/frame_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/navigation"
        android:animateLayoutChanges="true">

        <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottomNavigation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:background="?attr/myBackgroundColor"
            app:menu="@menu/bottom_navigation_items"
            app:itemTextAppearanceActive="@color/colorAccent"
            app:itemTextColor="@color/bottom_nav_color"
            app:itemIconTint="@color/bottom_nav_color"/>

    </FrameLayout>

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:layout_marginTop="0dp"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:itemTextColor="?attr/myTextColor"
        app:menu="@menu/activity_main_drawer" />

</androidx.drawerlayout.widget.DrawerLayout>

and my styles

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

</style>



<style name="brightTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="colorPrimary">#2196F3</item>
    <item name="colorPrimaryDark">#1976D2</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="myBackgroundColor">#FBFCFC</item>
    <item name="myEtBackgroundColor">#2196F3</item>
    <item name="myCardBackground">#FFFFFF</item>
    <item name="myTextColor">#808080</item>
    <item name="myTintColor">#000000</item>
    <item name="myButtonColor">#2196F3</item>
    <item name="myHintTextColor">#B3808080</item>
    <item name="android:alertDialogTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="android:windowBackground">@color/colorWindowBackgroundDay</item>
</style>



<style name="darkTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="colorPrimary">#212121</item>
    <item name="colorPrimaryDark">#000000</item>
    <item name="android:textColorSecondary">#555</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="myBackgroundColor">#424242</item>
    <item name="myEtBackgroundColor">#606060</item>
    <item name="myCardBackground">#212121</item>
    <item name="myTextColor">#FFFFFF</item>
    <item name="myTintColor">#FFFFFF</item>
    <item name="myButtonColor">#2196F3</item>
    <item name="myHintTextColor">#B3FFFFFF</item>

    <item name="android:alertDialogTheme">@style/ThemeOverlay.AppCompat.Dark</item>
    <item name="android:windowBackground">@color/colorWindowBackgroundNight</item>
</style>

the problem is, I cannot use <item name="android:textColorSecondary">#555</item> neither in bright or dark mode because I get this error:

2019-11-21 12:35:29.663 6291-6320/pl.jawegiel.simplenotepad.debug E/libc: Access denied finding property "vendor.debug.prerotation.disable" 2019-11-21 12:35:29.796 6291-6291/pl.jawegiel.simplenotepad.debug E/lenotepad.debu: Invalid ID 0x00000000. 2019-11-21 12:35:29.798 6291-6291/pl.jawegiel.simplenotepad.debug E/AndroidRuntime: FATAL EXCEPTION: main Process: pl.jawegiel.simplenotepad.debug, PID: 6291 java.lang.RuntimeException: Unable to start activity ComponentInfo{pl.jawegiel.simplenotepad.debug/pl.jawegiel.simplenotepad.MainActivity}: android.view.InflateException: Binary XML file line #25: Binary XML file line #25: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2956) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3091) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:280) at android.app.ActivityThread.main(ActivityThread.java:6748) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: android.view.InflateException: Binary XML file line #25: Binary XML file line #25: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView Caused by: android.view.InflateException: Binary XML file line #25: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at android.view.LayoutInflater.createView(LayoutInflater.java:647) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.rInflate(LayoutInflater.java:863) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.rInflate(LayoutInflater.java:866) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at pl.jawegiel.simplenotepad.MainActivity.onCreate(MainActivity.java:67) at android.app.Activity.performCreate(Activity.java:7136) at android.app.Activity.performCreate(Activity.java:7127) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2936) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3091) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:280) at android.app.ActivityThread.main(ActivityThread.java:6748) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0 at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:216) 2019-11-21 12:35:29.798 6291-6291/pl.jawegiel.simplenotepad.debug E/AndroidRuntime: at android.content.res.Resources.getColorStateList(Resources.java:1031) at android.content.Context.getColorStateList(Context.java:651) at androidx.appcompat.content.res.AppCompatResources.getColorStateList(AppCompatResources.java:67) at com.google.android.material.bottomnavigation.BottomNavigationMenuView.createDefaultColorStateList(BottomNavigationMenuView.java:467) at com.google.android.material.bottomnavigation.BottomNavigationMenuView.<init>(BottomNavigationMenuView.java:101) at com.google.android.material.bottomnavigation.BottomNavigationMenuView.<init>(BottomNavigationMenuView.java:86) at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:123) at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:114) ... 30 more .

What should I do? I'm trying to be able to change secondary text color but unfortunately it does not work. If I remove both BottomNavigationView and Navigation view from my layout everything works.

java
android
asked on Stack Overflow Nov 21, 2019 by mnietuniema

1 Answer

0

It turned out I need to pass resource from @colors instead of raw string.

answered on Stack Overflow Nov 26, 2019 by mnietuniema

User contributions licensed under CC BY-SA 3.0