У меня есть панель инструментов, и я хочу изменить ее заголовок.
Сначала у меня есть SearchView, поэтому я добавляю 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");
}
}
Я могу избавиться от SearchView с помощью mSearchView.setVisibility(View.GONE), но вызов setupToolbar() все равно ничего не меняет.
Структура XML:
<CoordinatorLayout>
<AppBarLayout>
<Toolbar/>
</AppBarLayout>
</CoordinatorLayout>
Вам необходимо изменить этот 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);
}
Это не помогает. SearchView по-прежнему отображается, а заголовок не отображается.
Добавьте "Search Item" как пункт меню,
добавьте этот файл меню в каталог res / menu:
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>
В методе setupSearchTooBar () раздувайте его так:
toolbar.inflateMenu(R.menu.menuitem)
и в SetUpSearchView ()
mSearchItem = (MenuItem) toobar.getMenu().findItem(R.id.action_search)
mSearchView = (SearchView) mSearchItem.getActionView()
Теперь установите заголовок либо this.title = "your title", либо toolbar.title = "your title".
Я надеюсь, что это поможет вам
также опубликуйте свой xml