2016-01-28 60 views
5

Sono abbastanza nuovo per lo sviluppo Android. Ho seguito il corso di Google Udacity e sto attualmente cercando di codificare un'app. Nello specifico, sto provando a passare la mia attuale app (scritta in QT) su Android nativo.Barra di ricerca persistente Android nella barra degli strumenti

Quello che sto cercando di fare è di fare qualcosa di simile a questo:

http://i.stack.imgur.com/Exm2y.png

che è stata presa dalla questione Material Design - Persistent search, with navigation drawer sulla User Experience Stack Exchange.

Posso fare la parte superiore, ma non riesco a capire come ottenere la barra di ricerca persistente in basso. Ho provato diverse soluzioni (tema personalizzato per barra delle attività e barra degli strumenti), ma non sono riuscito a ottenere qualcosa neanche lontanamente vicino. Qualcuno potrebbe aiutarmi con questo?

+1

Cioè due barre, un set come la barra azione di sostegno per l'attività (con elevazione 0DP) e uno sotto con elevazione 4dp e layout_margin di 16dp. I valori qui sto assumendo, ma penso che siano giusti. Il widget che controlla la ricerca è un SearchView che è una voce di menu nella seconda barra degli strumenti. –

+0

Wow non ho nemmeno pensato di usare questo approccio! Grazie, vado a provarlo ora. – nerras

+0

Quando parli di udacity, intendi il nanodegree o solo uno dei corsi? Sto prendendo il corso di nanodegree ora –

risposta

-1

Questo è un tutorial più vecchio ma abbastanza buono per aiutarti a iniziare.

http://www.edumobile.org/android/action-bar-search-view/

+0

Ho già attraversato quei tipi di tutorial. Il problema principale che sto avendo è la persistenza, che si estende al di sotto del pulsante di overflow del menu e con l'ombra su di esso (quando ho provato un approccio personalizzato) – nerras

0

solo bisogno di mettere tutto insieme all'interno AppBarLayout. Barra degli strumenti e qualsiasi libreria per la ricerca persistente. Here è molto utile, quindi imposta il layout_height per AppBarLayout. qualcosa di simile

<android.support.design.widget.AppBarLayout 
    android:id="@id/app_bar_layout" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/margin_130" 
    android:background="@drawable/bg_tab_degraded" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark"> 

    <android.support.v7.widget.Toolbar 
     android:id="@id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@drawable/bg_tab_degraded" 
     app:layout_scrollFlags="scroll|enterAlways" 
     /> 

    <com.arlib.floatingsearchview.FloatingSearchView 
     android:id="@+id/floating_search_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/bg_tab_degraded" 
     app:floatingSearch_searchBarMarginLeft="@dimen/margin_20" 
     app:floatingSearch_searchBarMarginTop="@dimen/margin_5" 
     app:floatingSearch_searchBarMarginRight="@dimen/margin_20" 
     app:floatingSearch_searchHint="Search..." 
     app:floatingSearch_suggestionsListAnimDuration="250" 
     app:floatingSearch_showSearchKey="false" 
     app:floatingSearch_leftActionMode="showSearch" 
     app:floatingSearch_menu="@menu/main" 
     app:floatingSearch_close_search_on_keyboard_dismiss="true"/> 



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

Spero, ti aiuterà. In bocca al lupo.

0

Si può provare PersistentSearch

search = (SearchBox) findViewById(R.id.searchbox); 
for(int x = 0; x < 10; x++){ 
    SearchResult option = new SearchResult("Result " + Integer.toString(x), getResources().getDrawable(R.drawable.ic_history)); 
    search.addSearchable(option); 
}  
search.setLogoText("My App"); 
search.setMenuListener(new MenuListener(){ 

     @Override 
     public void onMenuClick() { 
      //Hamburger has been clicked 
      Toast.makeText(MainActivity.this, "Menu click", Toast.LENGTH_LONG).show();    
     } 

    }); 
search.setSearchListener(new SearchListener(){ 

    @Override 
    public void onSearchOpened() { 
     //Use this to tint the screen 
    } 

    @Override 
    public void onSearchClosed() { 
     //Use this to un-tint the screen 
    } 

    @Override 
    public void onSearchTermChanged() { 
     //React to the search term changing 
     //Called after it has updated results 
    } 

    @Override 
    public void onSearch(String searchTerm) { 
     Toast.makeText(MainActivity.this, searchTerm +" Searched", Toast.LENGTH_LONG).show(); 

    } 

    @Override 
    public void onResultClick(SearchResult result){ 
     //React to a result being clicked 
    } 


    @Override 
    public void onSearchCleared() { 

    } 

}); 

Inoltre controllare https://github.com/UsherBaby/SearchView-1

enter image description here

+0

Non sembra esattamente quello che l'OP vuole ottenere. – anthonymonori

+0

sotto la barra degli strumenti aggiungi questa vista di ricerca –

+0

Ora è deprecato – 476rick

Problemi correlati