具有搜索视图时更改工具栏标题



我有一个工具栏,我想更改其标题。首先,我有一个搜索视图,所以我将 SearchView添加到工具栏上:

private void setupSearchView() {
    mSearchView = new SearchView(this);     
    searchEditText.setTextColor(getResources().getColor(R.color.white));
    mSearchView.setMaxWidth(Integer.MAX_VALUE);
    mSearchView.setOnQueryTextListener(this);
    mSearchView.setSubmitButtonEnabled(false);
}

然后我设置Toolbar

private void setupSearchToolbar() {
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    if (getSupportActionBar() != null) {
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    } 
}

此时,我想删除SearchView并添加标题。我尝试了

第一种方法:this.setTitle(title)

第二种方法:

private void setupToolbar() {
     Toolbar mActionBarToolbar = (Toolbar) 
     findViewById(R.id.toolbar);
     setSupportActionBar(mActionBarToolbar); 
     if (getSupportActionBar() != null) {
         getSupportActionBar().setTitle("My title");
     }
 }

我可以使用mSearchView.setVisibility(View.GONE)摆脱SearchView,但是呼叫setupToolbar()仍然不会更改任何内容。

XML结构:

<CoordinatorLayout>
    <AppBarLayout>
        <Toolbar/>
    </AppBarLayout>
</CoordinatorLayout>

充气"搜索项"作为菜单项,

在Res/菜单目录中添加此菜单文件:

菜单_item.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"
xmlns:tools="http://schemas.android.com/tools">
<item
    android:id="@+id/action_search"
    android:icon="@drawable/search_icon"
    android:title="Search"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:iconTint="@color/colorAccent"
    app:showAsAction="always|collapseActionView"
    tools:ignore="HardcodedText" />
</menu>

在setupsearchtoobar((中,方法会像这样夸大它,

toolbar.inflateMenu(R.menu.menuitem)

和setupSearchView((

mSearchItem = (MenuItem) toobar.getMenu().findItem(R.id.action_search)
mSearchView = (SearchView) mSearchItem.getActionView()

现在设置title this.title ="您的标题"或Toolbar.title ="您的标题"

我希望这对您有帮助

您需要按以下

更改此setupToolbar()
Toolbar mActionBarToolbar;
private void setupToolbar() {
    mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar);
    mActionBarToolbar.setTitle("My title");
    setSupportActionBar(mActionBarToolbar); 
    mSearchView.onActionViewCollapsed();
}

并创建一个函数以更改标题为

private void changeTitle(String newTitle){
    mSearchView.onActionViewCollapsed();
    mActionBarToolbar.setTitle(newTitle);
}

相关内容

  • 没有找到相关文章

最新更新