getSupportActionBar().setTitle()与toolbar.setTitle()之间的区别

21

我知道在Android Activity 中设置标题有两种方法。

假设我已经有了下面的代码...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_activity);

    ...

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
    setSupportActionBar(toolbar);

我可以使用这个或者那个...

getSupportActionBar().setTitle("My title");

...对于这个问题...

toolbar.setTitle("My title");

...设置我的标题。

我的问题是,哪种做法更好?


既然您有一个工具栏对象,为什么不使用它的方法呢? - OneCricketeer
如果您已经拥有工具栏,使用其方法肯定是更好的实践。因此,请使用toolbar.setTitle()。 - androidEnthusiast
有时候我会想念方法链式调用。setSupportActionbar(toolbar).setTitle(R.string.title); 但是我们甚至不能 setSupportActionbar(toolbar.setTitle(R.string.title)); - J.G.Sebring
2个回答

27
如果您调用了setSupportActionBar(Toolbar),则操作栏将负责处理标题,因此您需要调用getSupportActionBar()。setTitle(“My Title”);来设置自定义标题。
另外请查看此链接,其中toolbar.setTitle(“My title”);可能会导致以下问题:- 在Android应用程序中,Toolbar.setTitle方法没有效果-应用程序名称显示为标题 Toolbar是操作栏的一般形式。
我们可以将多个工具栏作为布局小部件,但操作栏不行。
因此更好的方法是使用getSupportActionBar().setTitle(“My Title”);

1
这是否意味着 getSupportActionBar().setHomeAsUpIndicator(int)toolbar.setNavigationIcon(int) 更好呢,还是说它们略有不同? - Farbod Salamat-Zadeh

0
setSupportActionBar(toolbar);

这行代码的目的是将传入的工具栏设置为活动的应用栏。因此,无论哪种方式都是完全可接受的;个人而言,既然您已经创建了一个工具栏,我会在使用上述方法传递之前设置工具栏的标题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接