SearchView Não clicavel

5 respostas
android
T

Prezados, estou tentando colocar um SearchView dentro de uma Toolbar porém não consigo clicar no campo SearchView, como se o objeto estivesse atrás de alguma coisa.

Segue a imagem…

Abaixo segue meu xml…

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout
xmlns:android=“http://schemas.android.com/apk/res/android
xmlns:tools=“http://schemas.android.com/tools
xmlns:app=“http://schemas.android.com/apk/res-auto
android:id="@+id/content_frame"
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:fitsSystemWindows=“false”>

<android.support.design.widget.AppBarLayout
    android:id="@+id/xToolBar"
    android:layout_width="match_parent"
    android:layout_height="280dp">
<android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapse_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
            android:id="@+id/xBgImagem"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/bg1"
            android:scaleType="centerCrop"
            app:layout_collapseMode="pin"/>
<android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin">
<SearchView
                android:background="@color/branco"
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:elevation="5dp"
                android:fitsSystemWindows="true"
                android:layout_marginRight="10dp"
                android:layout_marginLeft="10dp"
                android:clickable="true"/>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<RelativeLayout
    app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<android.support.v4.widget.NestedScrollView
        android:id="@+id/xScrollViewBotoes"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true">
<RelativeLayout
            android:id="@+id/xLayoutBotoes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
<ImageView
                android:id="@+id/divisao1"
                android:background="@drawable/divisao_branca"
                android:layout_width="match_parent"
                android:layout_height="1dp" />
<RelativeLayout
                android:layout_below="@+id/divisao1"
                android:id="@+id/layout_btn_cabelo"
                android:layout_width="match_parent"
                android:layout_height="150dp">
<ImageButton
                    android:id="@+id/btn_cabelo"
                    android:background="@drawable/cabelo"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent" />
<TextView
                    android:id="@+id/txt_btn_cabelo"
                    android:clickable="true"
                    android:text="BARBA/CABELO"
                    android:textColor="@color/branco"
                    android:textSize="15dp"
                    android:gravity="center|center_vertical"
                    android:layout_alignTop="@+id/btn_cabelo"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"/>
</RelativeLayout>
<ImageView
                android:id="@+id/divisao2"
                android:layout_below="@+id/layout_btn_cabelo"
                android:background="@drawable/divisao_branca"
                android:layout_width="match_parent"
                android:layout_height="1dp" />
<RelativeLayout
                android:layout_below="@+id/divisao2"
                android:id="@+id/layout_btn_maquiagem"
                android:layout_width="match_parent"
                android:layout_height="150dp">
<ImageButton
                    android:id="@+id/btn_maquiagem"
                    android:background="@drawable/maquiagem"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"/>
<TextView
                    android:id="@+id/txt_btn_maquiagem"
                    android:clickable="true"
                    android:text="MAQUIAGEM"
                    android:textColor="@color/branco"
                    android:textSize="15dp"
                    android:gravity="center|center_vertical"
                    android:layout_alignTop="@+id/btn_maquiagem"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
</RelativeLayout>
<ImageView
                android:id="@+id/divisao3"
                android:layout_below="@+id/layout_btn_maquiagem"
                android:background="@drawable/divisao_branca"
                android:layout_width="match_parent"
                android:layout_height="1dp" />
<RelativeLayout
                android:layout_below="@+id/divisao3"
                android:id="@+id/layout_btn_manicure"
                android:layout_width="match_parent"
                android:layout_height="150dp">
<ImageButton
                    android:id="@+id/btn_manicure"
                    android:background="@drawable/unha"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"/>
<TextView
                    android:id="@+id/txt_btn_manicure"
                    android:clickable="true"
                    android:text="PÉ E MÃO"
                    android:textColor="@color/branco"
                    android:textSize="15dp"
                    android:gravity="center|center_vertical"
                    android:layout_alignTop="@+id/btn_manicure"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
</RelativeLayout>
<ImageView
                android:id="@+id/divisao4"
                android:layout_below="@+id/layout_btn_manicure"
                android:background="@drawable/divisao_branca"
                android:layout_width="match_parent"
                android:layout_height="1dp" />
<RelativeLayout
                android:layout_below="@+id/divisao4"
                android:id="@+id/layout_btn_depilacao"
                android:layout_width="match_parent"
                android:layout_height="150dp">
<ImageButton
                    android:id="@+id/btn_depilacao"
                    android:background="@drawable/depilacao"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"/>
<TextView
                    android:id="@+id/txt_btn_depilacao"
                    android:clickable="true"
                    android:text="DEPILAÇÃO"
                    android:textColor="@color/branco"
                    android:textSize="15dp"
                    android:gravity="center|center_vertical"
                    android:layout_alignTop="@+id/btn_depilacao"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"/>
            </RelativeLayout>
</RelativeLayout>
    </android.support.v4.widget.NestedScrollView>
</RelativeLayout>

</android.support.design.widget.CoordinatorLayout>

Porque quando eu clico no SearchView nada ocorre. como se o objeto estivesse por trás de outro? Já fiz diversas alterações no Layout e nada.

Quem puder me ajudar.
Obrigado!

5 Respostas

J

Tenta colocar o SearchView como item do menu no layout do toolbar:

<item
    android:id="@+id/searchView"
    android:icon="@android:drawable/ic_menu_search"
    app:showAsAction="always|collapseActionView"
    app:actionViewClass="android.support.v7.widget.SearchView"
    android:title="@string/buscar"
    />

Ai lá no onCreateOptionsMenu algo ± assim;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_toolbar, menu);

    MenuItem searchItem = menu.findItem(R.id.searchView);
    searchView = (SearchView) MenuItemCompat.getActionView(searchItem);

    return true;
}
T

Galera, consegui resolver! O problema é que eu tenho um xml separado para o AppBar e eu estava incluindo o SearchView no XML da Main e não dentro desse xml especifico para a AppBar.

Assim, incluindo o SearchView dentro do XML correto funcionou perfeitamente.

Obrigado.

J

Foi o que postei ali basicamente. Boa!

J

sem duvida, itens, actions view e provider, devem ser inflados com o método de criação de menu.

T

Julio, na verdade não foi bem isso que eu fiz e por isso não está funcionando, ele até esta visível e clicável entretanto não sei como instancia-lo no código, pois retorna erro. Já tentei de todas as formas implementar esse SearchView na Toolbar do Fragment mas não consigo.

1) Colocando o SearchView como item do menu no layout do Toolbar.
Não sei como fazer o botão de Search aparecer na View (Fragment). E consequentemente não consigo implementar as ações de consulta.

2) Tentei da primeira forma (como eu abrir esse post) porém não consigo instancia-lo na View (Fragment), pois recebo erro de Null Point como se o SearchView não estivesse no XML.

Desculpa mas sou novato em dev…você poderia postar um exemplo mais detalhado de como implementar um SearchView na Toolbar (support.v7.widget).

Muito obrigado pelo retorno dado.

Criado 18 de abril de 2017
Ultima resposta 9 de mai. de 2017
Respostas 5
Participantes 3