ฉันเพิ่งติดตั้งv7 AppCompat
ไลบรารีการสนับสนุน แต่MenuItemCompat.getActionView
ผลตอบแทนจะเป็นโมฆะใน Android ทุกรุ่นที่ฉันทดสอบ (4.2.2, 2.3.4 .... )
SearchView
จะแสดงในแถบการทำงาน แต่ก็ไม่ได้ตอบสนองต่อการสัมผัสการกระทำและไม่ขยายเพื่อแสดงตนEditText
และเป็นเช่นเดียวกับไอคอนที่เรียบง่าย
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
if (searchView != null) {
SearchViewCompat.setOnQueryTextListener(searchView, mOnQueryTextListener);
searchView.setIconifiedByDefault(false);
Log.d(TAG,"SearchView not null");
} else
Log.d(TAG, "SearchView is null");
}
return super.onCreateOptionsMenu(menu);
}
menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_search"
app:showAsAction="always|collapseActionView"
android:icon="@drawable/abc_ic_search"
android:title="@string/action_bar_search"
android:actionViewClass="android.support.v7.widget.SearchView"/>
<item android:id="@+id/action_refresh"
android:icon="@drawable/refresh"
android:title="@string/action_bar_refresh"
app:showAsAction="ifRoom"/>
</menu>