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!