material-components / material-components/material-components-android
[Search Bar] hiding navigation icon crashing application
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 17.4k
- Forks
- 3.2k
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere den Absturz mit einer SearchBar, die app:hideNavigationIcon="true" verwendet, und untersuche anschließend SearchView.java bei updateNavigationIconIfNeeded und setupWithSearchBar sowie FadeThroughDrawable.java in Zeile 46. Erledigt ist dies, wenn die Anwendung nicht mehr abstürzt und das Navigationssymbol ausgeblendet bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, java
- Bereich
- mobile
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100