搜索视图在工具栏中不显示 - Android Lollipop

4

我在以下Activity中有一个工具栏:

    <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);
}

现在我的问题是,我没有像普通ActionBar一样得到SearchView,而是得到了一个普通的菜单。我该如何获得一个正常的SearchView?


可能是重复的问题:无法使ActionBar中的SearchView工作 - Maveňツ
1个回答

6

使用您的应用程序命名空间:

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

myapp:showAsAction="always"

说明: 由于您正在使用旧版Android的支持库,并且它没有包含在SDK中,因此android命名空间不包含showAsAction属性。相反,这个属性是包含在您链接到项目中的支持库中的。所以,要访问该属性,您必须使用您的应用程序命名空间。


1
谢谢您。这对我有用。如果您能解释一下那个自定义命名空间是做什么的,以及为什么它不能与“android”一起使用,那将非常有帮助。 - Mythul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接