我有一个工具栏,我想更改其标题。首先,我有一个搜索视图,所以我将 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);
}