material-components / material-components/material-components-android
[Search Bar] hiding navigation icon crashing application
Nessuno ha ancora preso questa issue.
- Lingua principale
- Java
- Stelle
- 17.4k
- Fork
- 3.2k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il crash con una SearchBar che utilizza app:hideNavigationIcon="true", quindi esamina SearchView.java in corrispondenza di updateNavigationIconIfNeeded e setupWithSearchBar, insieme a FadeThroughDrawable.java alla riga 46. Il lavoro è completato quando l’applicazione non va più in crash e l’icona di navigazione rimane nascosta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- android, java
- Ambito
- mobile
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100