Android setTitle()在不同时间的行为不同
我正在扩展Android setTitle()在不同时间的行为不同,android,android-support-library,android-toolbar,android-appcompat,Android,Android Support Library,Android Toolbar,Android Appcompat,我正在扩展AppCompatActivity并使用setSupportActionBar()设置ActionBar 标题的设置有点混乱 如果我这样做- Toolbar toolbar = (Toolbar) findViewById(R.id.titlebar); setSupportActionBar(toolbar); toolbar.setTitle("Title 1"); // Does not work setTitle("Title 2"); // Works getSupportA
AppCompatActivity
并使用setSupportActionBar()
设置ActionBar
标题的设置有点混乱
如果我这样做-
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的预期行为还是一个bug 如果调用
setSupportActionBar(工具栏),
则操作栏负责处理标题,因此需要调用getSupportActionBar().setTitle(“我的标题”)
设置自定义标题
还可以检查这个链接,其中toolbar.setTitle(“我的标题”)代码>可能会导致如下问题:-在android应用程序工具栏中。setTitle
方法无效-应用程序名称显示为title
而工具栏
是操作栏的一般形式
我们可以有多个工具栏作为布局小部件,但操作不是
因此,更好的方法是使用getSupportActionBar().setTitle(“我的标题”)代码>复制此行
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);
一旦你设置了setSupportActionBar(工具栏)
,这就是你想要的行为。支持库内部为显示标题创建新视图
setTitle()
是活动的方法
如果使用setActionBar(工具栏)
,它将只更新标题。但是,它没有向后兼容性
参考号
我理解这一点。但是,如果第4行可以工作,那么第6行也应该可以工作;在这种情况下不起作用..然后我们在第4行得到一个NPE)您可以使用setSupportActionBar();两次。一个在第4行之前,一个在末尾。