2015-01-07 5 views
6

Voglio allineare il SearchView su tablet quando si utilizza il nuovo tema materiale e AppCompat 21. È possibile o devo aggiungere il mio layout personalizzato alla barra degli strumenti?È possibile allineare SearchView in AppCompat 21 con la barra degli strumenti?

enter image description here

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_search, menu); 
    mnuSearch = menu.findItem(R.id.menu_search); 
    android.support.v7.widget.SearchView searchView = (SearchView) MenuItemCompat.getActionView(mnuSearch); 
    searchView.setGravity(Gravity.LEFT); 
    searchView.setIconifiedByDefault(false); 
    searchView.setQueryHint(getString(R.string.search)); 
    searchView.requestFocus(); 
    return true; 
} 
+0

domanda molto buona compagno Credo che nel corpo della barra degli strumenti in XML è possibile impostare l'icona con visualizzazione dell'immagine si può provare questo –

risposta

2

avrei preferito definire il tuo SearchView in un layout e quindi chiamare

View v = findViewById(R.id.your_search_view); 
getSupportActionBar().setCustomView(v); 

In questo modo si tratta già allineato a sinistra, e se non è possibile impostare il suo LayoutParams.

Se si utilizza un Toolbar con AppCompat, le cose sono più facili, perché agisce come ViewGroup.

<android.support.v7.widget.Toolbar 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     xmlns:abc="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/toolbar" 
     android:layout_height="?attr/actionBarSize" 
     android:layout_width="match_parent"> 

    <your.SearchView /> 
     // here you have control over layout_gravity 

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

Grazie, lo farà in questo modo. Avevo sperato in una soluzione facile ma immagino che sia così facile come sembra :-) –