Wie kann man Android SearchView wie in der Google Play Store App stylen?

Ich versuche ein @ zu stylSearchView in einemtoolbar um wie das @ auszusehen / sich zu verhaltSearchView in demGoogle Play Store app. Es scheint die Suchansicht in eine Kartenansicht zu verwandeln, aber es scheint auch das Schaltflächen- / Schubladen-Umschaltverhalten zu integrieren.

Dies ist die Hauptaktivität searchView, es hat Schubladenumschaltung integriert

wenn Sie darauf klicken, ändert sich das Umschalten der Schublade in Pfeil (wenn Sie darauf klicken, wird der Fokus aus der Suchansicht entfernt)

Wenn Sie im Store auf eine App klicken, rufen Sie die App-Detailseite auf und es wird eine symbolisierte Version der Suchansicht als ausgeblendetes Aktionselement mit Aufwärtsschaltfläche angezeigt:

Wenn Sie schließlich auf das Suchsymbol klicken, wird es als Aktionselement (mit einer Art Ripple-Animation) erweitert und auf dem gesamten Bildschirm angezeigt und enthält die Aufwärtsschaltfläche:

Wenn ich es selbst versuche, habe ich viele Probleme. Ich habe versucht, die Suchansicht in eine Kartenansicht zu packen und diese in eine Symbolleiste zu packen. Es funktioniert, aber es gibt immer Auffüllungen auf der linken Seite, die ich nicht entfernen kann (ich habe versucht, contentInsetStart, funktioniert nicht):

<android.support.v7.widget.Toolbar
    android:id="@+id/activityCatalogToolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:popupTheme="@style/AppTheme.PopupOverlay"
    android:theme="@style/AppTheme.AppBarOverlay"
    app:contentInsetStart="0dp"
    app:contentInsetLeft="0dp">

    <android.support.v7.widget.CardView
        android:id="@+id/activityCatalogSearchContainer"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:layout_gravity="end"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp"
        android:layout_marginRight="8dp"
        android:layout_marginLeft="8dp"
        app:cardCornerRadius="4dp"
        app:cardElevation="8dp">

        <android.support.v7.widget.SearchView
            android:id="@+id/activityCatalogSearch"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:queryHint=""
            android:iconifiedByDefault="false"/>

    </android.support.v7.widget.CardView>

</android.support.v7.widget.Toolbar>

Ich habe auch versucht, die Symbolleiste zu entfernen und durch ein FrameLayout zu ersetzen. Auf diese Weise kann ich das Auffüllen steuern, aber offensichtlich verliere ich die Funktionen der Symbolleiste (Aufwärtsschaltfläche usw.) und führe auch Probleme mit den Themen ein (Symbole und Text verschwinden).

Hat jemand eine Idee, wie sie das machen? Ich möchte keine weitere Bibliothek hinzufügen, um Widgets zu formatieren, die bereits im Framework vorhanden sind. Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage