material-components-android icon indicating copy to clipboard operation
material-components-android copied to clipboard

[Search Bar] hiding navigation icon crashing application

Open awaisabbasaa11 opened this issue 11 months ago • 0 comments

Description: I am using material = "1.11.0" and when I set app:hideNavigationIcon="true" it crashes the application

Stacktrace java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.drawable.Drawable$ConstantState android.graphics.drawable.Drawable.getConstantState()' on a null object reference at com.google.android.material.internal.FadeThroughDrawable.<init>(FadeThroughDrawable.java:46) at com.google.android.material.search.SearchView.updateNavigationIconIfNeeded(SearchView.java:469) at com.google.android.material.search.SearchView.setupWithSearchBar(SearchView.java:565) at com.signinghub.nd.ui.fragments.locale.LocaleSearchFragment.setupUI(LocaleSearchFragment.kt:65) at com.signinghub.nd.ui.fragments.locale.LocaleSearchFragment.onViewCreated(LocaleSearchFragment.kt:46) at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3147) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:588) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:272) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1845) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782) at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:565) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8762) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

Expected behavior: The app should not crash and icon should hide.

Source code: ` <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:weightSum="1">

        <com.google.android.material.button.MaterialButton
            android:id="@+id/backButton"
            style="@style/sh_icon_button_style"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/action_back"
            app:icon="@drawable/ic_back_24"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <com.google.android.material.search.SearchBar
            android:id="@+id/searchBar"
            android:layout_width="0dp"
            app:hideNavigationIcon="true"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="@string/search_hint" />
    </LinearLayout>

</com.google.android.material.appbar.AppBarLayout>`

Android API version: Android 13

Material Library version: material = "1.11.0"

Device: Samsung devices, and i believe it will crash on other devices as well

awaisabbasaa11 avatar Mar 07 '24 07:03 awaisabbasaa11