Como estilizar o Android SearchView como no aplicativo Google Play Store?

Estou tentando criar umSearchView em umtoolbar parecer / se comportar como oSearchView noGoogle Play Store app. Parece envolver a visualização de pesquisa em uma visualização de cartão, mas também parece integrar o comportamento de alternância de botão / gaveta.

Esta é a principal atividade de buscaVisualizar, ele possui alternância de gaveta integrada

quando você clica nela, a alternância da gaveta muda para a seta (que, quando clicada, remove o foco da visualização de pesquisa)

Ao clicar em um aplicativo na loja, você acessa a página de detalhes do aplicativo e tem a versão iconificada da exibição de pesquisa como um item de ação recolhido com o botão para cima:

Por fim, se você clicar no ícone de pesquisa, ele se expande como um item de ação (com um tipo de animação ondulada) e é exibido em toda a tela e incorpora o botão para cima:

Quando tento fazer isso sozinho, tenho muitos problemas. Tentei envolver o searchview em um cardview e colocá-lo em uma barra de ferramentas. Funciona, mas sempre há preenchimento no lado esquerdo que não consigo remover (tentei contentInsetStart, não funciona):

<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>

Também tentei remover a barra de ferramentas e substituí-la por apenas um FrameLayout. Isso me permite controlar o preenchimento, mas obviamente perco as funcionalidades da barra de ferramentas (botão para cima, etc) e também introduz problemas de temas (ícones e texto desaparecem).

Alguém tem uma idéia de como eles estão fazendo isso? Não quero adicionar outra biblioteca apenas para estilizar widgets que já existem na estrutura. Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion