2016-01-28 30 views
5

Jestem dość nowy w rozwoju Androida. Przeszedłem kurs Google Udacity i obecnie próbuję zakodować aplikację. W szczególności próbuję zmienić moją obecną aplikację (napisaną w QT) na natywny Android.Pasek wyszukiwania trwałego systemu Android

Co usiłuję zrobić jest zrobienie czegoś podobnego do tego:

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

który wzięto od kwestii Material Design - Persistent search, with navigation drawer na Użytkownika Doświadczenie Stos Exchange.

Potrafię wykonać górną część, ale nie mogę wymyślić, jak uzyskać stały pasek wyszukiwania na dole. Próbowałem różnych rozwiązań (niestandardowy motyw paska działań i paska narzędzi), ale nie udało się uzyskać nawet bliskiego zamknięcia. Czy ktoś może mi w tym pomóc?

+1

To dwa paski narzędzi, jeden zestaw jak na pasku akcji wsparcie dla aktywności (z wysokości 0DP) i jeden poniżej to z elewacją 4dp i layout_margin z 16dp. Wartości tutaj zakładam, ale myślę, że mają rację. Widżet kontrolujący wyszukiwanie to SearchView, który jest elementem menu na drugim pasku narzędzi. –

+0

Wow, nawet nie pomyślałem o użyciu tego podejścia! Dziękuję, spróbuję teraz. – nerras

+0

Kiedy mówisz o kursie udwalności, miałeś na myśli nanodwala lub tylko jeden z kursów? Biorę teraz kurs z nanodrożami –

Odpowiedz

-1

To jest starszy samouczek, ale wystarczająco dobry, aby pomóc Ci zacząć.

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

+0

Przeszedłem już tego rodzaju samouczki. Głównym problemem, jaki mam, jest uporczywość, która polega na tym, że znajduje się poniżej przycisku przepełnienia menu i ma na sobie cień (gdy próbowałem niestandardowego podejścia). – nerras

0

wystarczy umieścić wszystkie razem wewnątrz AppBarLayout. Pasek narzędzi i dowolna biblioteka dla utrwalonego wyszukiwania. Here jest bardzo przydatny, więc w końcu ustaw swój layout_height dla AppBarLayout. coś takiego to

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

Mam nadzieję, że to ci pomoże. Powodzenia.

0

Można spróbować 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() { 

    } 

}); 

Sprawdź również https://github.com/UsherBaby/SearchView-1

enter image description here

+0

Nie wydaje się dokładnie tym, co OP chce osiągnąć. – anthonymonori

+0

poniżej paska narzędzi dodaj ten widok wyszukiwania. –

+0

Jest to przestarzałe – 476rick