Android SearchView over android启动器图标?

时间:2014-07-14 20:00:16

标签: android android-layout android-intent android-activity

搜索视图(点按/点击后)是否有任何方式扩展到Android启动器图标,例如应用程序标题名称?

或许,是否有办法将我的标题更改为启动图标(如sreenshot),并使用一些自定义字体..?

截图: enter image description here

2 个答案:

答案 0 :(得分:1)

在我的onCreateOptionsMenu()内部使用此代码:

    SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    searchView.setMaxWidth(5000);
    searchView.setOnSearchClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ActionBar actionBar = getActionBar();
            if (actionBar != null)
                actionBar.setDisplayShowHomeEnabled(false);
        }
    });
    searchView.setOnCloseListener(new SearchView.OnCloseListener() {
        @Override
        public boolean onClose() {
            ActionBar actionBar = getActionBar();
            if (actionBar != null)
                actionBar.setDisplayShowHomeEnabled(true);
            return false;
        }
    });

注意:

对我来说,默认情况下,Home Icon并未隐藏为@MattT。建议,所以我在打开搜索时手动隐藏它,并在搜索关闭时再次显示它。另请注意,getActionBar()需要API 14 +。

如果您有兴趣,在使用searchView之前,我会自动调整我的自定义布局:

getMenuInflater().inflate(R.menu.actionbar_items, menu);

布局( menu / actionbar_items.xml )是这样的:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          android:actionViewClass="android.widget.SearchView"
          android:showAsAction="always"/>

    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/action_settings"
          android:title="@string/action_settings"
          android:showAsAction="never" />
</menu>

答案 1 :(得分:0)

以下是我过去用来创建该类搜索视图的示例。 http://www.edumobile.org/android/android-development/action-bar-search-view/

除非您专门设置了android:logo属性,否则操作栏应默认使用您的启动器图标。您也可以使用操作栏上的setLogo()方法以编程方式修改此内容。