2016-01-28 18 views
5

Ich bin ziemlich neu in Android-Entwicklung. Ich habe den Google Udacity-Kurs besucht und versuche derzeit, eine App zu programmieren. Insbesondere versuche ich, meine aktuelle App (geschrieben in QT) auf natives Android umzustellen.Android persistente Suchleiste in Toolbar

Was ich versuche ist so etwas wie dies zu machen:

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

, die von der Material Design - Persistent search, with navigation drawer Frage auf den User Experience Stapel von Exchange genommen wurde.

Ich kann den oberen Teil tun, aber ich kann nicht herausfinden, wie Sie die persistente Suchleiste am unteren Rand bekommen. Ich habe verschiedene Lösungen (benutzerdefinierte Thema für Activitybar und Symbolleiste) versucht, aber nicht in der Lage, etwas sogar aus der Nähe zu schließen. Könnte mir jemand damit helfen?

+1

überprüfen, die zwei Symbolleisten ist, ein Satz als Träger Aktionsleiste für die Aktivität (mit Erhöhung der 0DP) und eine unter es mit 4dp höhe und layout_margin von 16dp. Die Werte hier nehme ich an, aber ich denke, sind richtig. Das Widget, das die Suche steuert, ist ein SearchView, ein Menüelement in der zweiten Symbolleiste. –

+0

Wow, ich habe nicht einmal an diesen Ansatz gedacht! Danke, ich werde es jetzt versuchen. – nerras

+0

Wenn du Udacity-Kurs sagst, meinst du den Nanodegree oder nur einen der Kurse? Ich nehme jetzt den nanodegree Kurs –

Antwort

-1

Dies ist ein älteres Tutorial, aber gut genug, um Ihnen den Einstieg zu erleichtern.

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

+0

Ich bin schon durchgegangen diese Arten von Tutorials. Das Hauptproblem, das ich habe, ist die Persistenz, es bis unterhalb der Menüüberlauftaste erweitern und den Schatten darauf haben (wenn ich einen benutzerdefinierten Ansatz versucht) – nerras

0

müssen nur alle zusammen in AppBarLayout setzen. Symbolleiste und jede Bibliothek für persisten Suche. Here ist sehr nützlich, so legen Sie schließlich Ihre Layout_Height für AppBarLayout. etwas wie das

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

Ich hoffe, es wird Ihnen helfen. Viel Glück.

0

können Sie versuchen, 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() { 

    } 

}); 

Auch https://github.com/UsherBaby/SearchView-1

enter image description here

+0

scheint nicht genau das, was das OP erreichen will. – anthonymonori

+0

unter der Symbolleiste fügen Sie einfach diese Suchansicht hinzu –

+0

Es ist jetzt veraltet – 476rick