4

Это можно рассматривать как расширение этого QuestionSearchView Виджет не отображается в действии Бар

Я добавил следующее в код, чтобы получить SearchView виджет

Рез/меню/main_activity_actions.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!-- Search, should appear as action button --> 
    <item android:id="@+id/action_search" 
      android:icon="@drawable/ic_action_search" 
      android:title="@string/action_search" 
      android:showAsAction="always" 
      android:actionViewClass="android.support.v7.widget.SearchView" /> 
    <!-- Settings, should always be in the overflow --> 
    <item android:id="@+id/action_settings" 
      android:title="@string/action_settings" 
      android:showAsAction="never" /> 
</menu> 

Mainactivity.java

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.main_activity_actions, menu); 
     MenuItem searchItem = menu.findItem(R.id.action_search); 
     SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 
     System.out.println("TESTING: "+searchView); 



     return super.onCreateOptionsMenu(menu); 
    } 

--- 
--- 

} 

Приложение отображается нормально, но при касании кнопки поиска ничего не отображается.

Screen shot

Создал версию SDK следующим образом: (4.0.3 -4.2.2)

android:minSdkVersion="15" 
android:targetSdkVersion="17" 

ответ

15

Изменения вам меню,

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

    <item android:id="@+id/action_search" 
      android:icon="@drawable/ic_action_search" 
      android:title="@string/action_search" 
      yourapp:actionViewClass="android.support.v7.widget.SearchView" 
      yourapp:showAsAction="always" /> 

</menu> 
+1

Изменение здесь заключается в том, что xmlns для yourapp добавлен, а пространство имен изменено для двух последних свойств элемента (в случае, если кто-то еще не видит его). http://stackoverflow.com/questions/18099221/action-bar-not-showing-action-view-icons предлагает наличие обоих. – hajamie

0

Вы пропустили " collapseActionView "в вашем меню:

app:showAsAction="ifRoom|collapseActionView"