android中的Action View

时间:2014-07-11 00:19:36

标签: android user-interface android-actionbar android-5.0-lollipop

我在操作栏中有一个带有搜索小部件的应用程序。当我切换主题以在android L中使用Material.Light时,应用程序不会将搜索小部件创建为动作视图。调试时我可以看到搜索视图为空。

菜单项:

<item
    android:id="@+id/search"
    android:icon="@android:drawable/ic_menu_search"
    android:title="@string/title"
    app:actionViewClass="android.widget.SearchView"
    app:showAsAction="always" />

创建菜单:

 Override
    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.homescreen, menu);


    return true;

}

搜索视图的变量初始化:

 @Override
public boolean onPrepareOptionsMenu(Menu menu) {

    SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
    searchView.setOnQueryTextListener(queryListener);

    return super.onPrepareOptionsMenu(menu);
}

有什么想法吗?

更新1: 好的,我将app:actionViewClass="android.widget.SearchView"替换为android:actionViewClass="android.widget.SearchView",从而阻止了应用崩溃。但是现在搜索项目显示在溢出菜单而不是操作栏中,即使它被设置为始终显示为操作。

1 个答案:

答案 0 :(得分:0)

设置它以显示&#34;总是&#34;我遇到了同样的问题。它最终总是处于溢出状态。如果您正在使用支持库,请确保您正在扩展ActionBarActivity,否则,常规Activity应该可以正常工作。