【问题标题】:Get the SearchView from Toolbar从工具栏获取 SearchView
【发布时间】:2016-04-05 13:43:54
【问题描述】:

是否可以仅通过 Toolbar 对象在 ActionBar 中获取 SearchView? .

我知道你可以通过 onCreateOptionsMenu() 获得它,但在这种情况下,我只是想看看是否可以通过 toolbar.findViewById 获得它

【问题讨论】:

  • 我认为你应该使用toolbar.getchildAt(index)来获取它。
  • 你是怎么加进去的?
  • public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.search_menu, menu);

标签: android android-layout view toolbar searchview


【解决方案1】:

是的。可以显示 SearchView。为此,您需要添加菜单功能,例如:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {

    switch (menuItem.getItemId()) {

    default:
        return super.onOptionsItemSelected(menuItem);
    }
}

您需要在 menu_main 菜单中实现以下代码(它必须留在菜单文件夹中)。

<?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/search"
    android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="always|collapseActionView"/></menu>

希望对你有帮助,谢谢。

【讨论】:

  • 我已经这样做了,我的问题是如果我有 Toolbar 对象并且 Search 已经被夸大了,如何从那里获取 SearchView?
  • Toolbar 对象不是事实。你可以拿 Toolbar 对象。你需要把这个 Toolbar 添加到 SupportActionBar..比如>>>>Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar) ; if (toolbar != null) super.setSupportActionBar(toolbar);
猜你喜欢
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
  • 2015-10-29
  • 1970-01-01
相关资源
最近更新 更多