2014-12-01 3 views
4

меня в следующей деятельности этой панели инструментов:SearchView не отображается на панели инструментов - Android Lollipop

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar_select_currency" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:minHeight="?attr/actionBarSize" 
     android:background="?attr/colorPrimary"/> 

Также меню объявлен в:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:id="@+id/search" 
     android:title="@string/search_currency" 
     android:icon="@drawable/ic_action_search" 
     android:showAsAction="collapseActionView|ifRoom" 
     android:actionViewClass="android.support.v7.widget.SearchView"/> 

</menu> 

В своей деятельности я называю:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.currency_selector_options_menu, menu); 

    return true; 
} 

private void initActionBar() { 
    // Initialize the Toolbar(this is the new ActionBar in Lollipop) 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_select_currency); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setTitle(getString(R.string.select_currency)); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
} 

Теперь моя проблема в том, что я не получаю SearchView, как в обычном ActionBar, то, что я получаю, является обычным меню. Как я могу получить обычный SearchView?

+0

Возможный дубликат [Невозможно получить поиск в панели действий для работы] (http://stackoverflow.com/вопросы/116 99206/can not-get-searchview-in-actionbar-to-work) – Gattsu

ответ

6

Используйте приложение имен:

xmlns:myapp="http://schemas.android.com/apk/res-auto" 

myapp:showAsAction="always" 

Объяснение: Поскольку вы используете библиотеку поддержки для старых версий андроид и это не входит в SDK, то android пространство имен не содержит showAsAction атрибут, который скорее содержится в библиотеке поддержки, которую вы связали с вашим проектом, поэтому для достижения этого атрибута вы должны использовать пространство имен приложений.

+1

Спасибо, сэр. Это сработало для меня. Было бы очень полезно, если бы вы могли объяснить мне, что делает это пользовательское пространство имен и почему он не работает с «android»? – Mythul

+2

Конечно, см. Мое редактирование – TheRedFox

Смежные вопросы