I've a toolbar and I want to change it's Title.
At first, I've a SearchView in it, so I add SearchView
to toolbar like this:
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);
}
Then I set Toolbar
private void setupSearchToolbar() {
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
if (getSupportActionBar() != null) {
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
At this point, I'd like to remove SearchView
and add title. I tried
First approach: this.setTitle(title)
Second approach:
private void setupToolbar() {
Toolbar mActionBarToolbar = (Toolbar)
findViewById(R.id.toolbar);
setSupportActionBar(mActionBarToolbar);
if (getSupportActionBar() != null) {
getSupportActionBar().setTitle("My title");
}
}
I can get rid of SearchView
with mSearchView.setVisibility(View.GONE)
, but then calling setupToolbar()
still doesn't change anything.
Xml structure:
<CoordinatorLayout>
<AppBarLayout>
<Toolbar/>
</AppBarLayout>
</CoordinatorLayout>
Inflate "Search Item" as menu item,
add this menu file in res/menu directory:
menu_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>
In setupSearchTooBar() method inflate it like this,
toolbar.inflateMenu(R.menu.menuitem)
and in SetUpSearchView()
mSearchItem = (MenuItem) toobar.getMenu().findItem(R.id.action_search)
mSearchView = (SearchView) mSearchItem.getActionView()
Now set title either this.title = "your title" or toolbar.title = "your title"
I hope this will Help you