我使用AppCompatActivity
延长ActionBar
并设置setSupportActionBar()
。
设置标题时有点混乱。
如果我这样做 -
Toolbar toolbar = (Toolbar) findViewById(R.id.titlebar);
setSupportActionBar(toolbar);
toolbar.setTitle("Title 1"); // Does not work
setTitle("Title 2"); // Works
getSupportActionBar().setTitle("Title 3"); // Works
setTitle("Title 4"); // Does not work. Why?
我看到getSupportActionBar().setTitle()
正在为标题创建新视图,然后活动正在丢失对它的引用。
这是Android中的预期行为还是错误?
答案 0 :(得分:1)
如果您致电setSupportActionBar(Toolbar),
,则操作栏负责处理标题,因此您需要致电getSupportActionBar().setTitle("My Title");
来设置自定义标题。
另请检查此toolbar.setTitle("My title");
可能导致如下问题的链接: - 在Android应用Toolbar.setTitle
方法无效 - 应用名称显示为标题
toolbar
是行动栏的一般形式。
我们可以将多个工具栏作为布局窗口小部件,但不会执行操作。
因此,更好的方法是使用getSupportActionBar().setTitle("My Title");
答案 1 :(得分:1)
复制此行
setSupportActionBar(toolbar);
添加行的结尾。
Toolbar toolbar = (Toolbar) findViewById(R.id.titlebar);
setSupportActionBar(toolbar);
toolbar.setTitle("Title 1");
setTitle("Title 2");
getSupportActionBar().setTitle("Title 3");
setTitle("Title 4");
setSupportActionBar(toolbar);
答案 2 :(得分:0)
设置setSupportActionBar(Toolbar)
后,这是预期的行为。支持库内部为显示标题创建新视图。
setTitle()
是Activity
的方法,如果使用setActionBar(Toolbar)
,它只会更新标题。但是,它没有向后兼容性。
参考