getSupportActionBar setSubtitle仅在活动重新播放后显示

时间:2017-08-02 15:31:53

标签: android toolbar

我有一个通用的

MyActivity extends AppCompatActivity

我没有使用自定义xml定义的工具栏覆盖工具栏,只需使用生成的Android提供的工具栏。

我可以通过您的正常

设置标题

getSupportActionBar().setTitle("foo");

但是通过

设置字幕

getSupportActionBar().setSubtitle("bar");

没有设置它。它仍然是空白的。我这样做onCreate()

(我觉得我之前做过很多次没有失败过)

虽然我注意到如果我访问另一项活动,然后返回,则字幕会显示...不会改变方向,而不是recreate(),但只有当我从活性。

我在5.0和7.0上遇到过这个问题

暂时我可能会定义自己的Toolbar并向前推进,因为这似乎是大多数人都能解决同一问题的方法。

相关代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_replenishment_list);
    ButterKnife.bind(this);
    MyApplication.getInstance().getComponent().inject(this);

    setupUI();
}

private void setupUI() {
    setupActionBar();
}

private void setupActionBar() {
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        //TODO: not working unless activity is recreated...
        // explore custom xml defined toolbar
        //actionBar.setTitle("different title than what is defined in manifest"); <-- this does work, but not this
actionBar.setSubtitle(UserUtil.getFormattedFirstNameLastName(userService.getUserFromJWT(), this));


    }
} 

1 个答案:

答案 0 :(得分:1)

我已将以下代码放在stickyTracking方法中。

tooltip.snap

结果是tooltip: { snap: 1 } 。当我首先添加工具栏时,它可以正常工作。

onCreate()

如果您没有为其设置工具栏,则ActionBar actionBar = getActionBar(); if (actionBar==null) { System.out.println("TEST NULL"); } else { System.out.println("TEST NOT NULL"); } null将返回Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); ActionBar actionBar = getActionBar(); actionBar.setSubtitle("TESTING"); 。在使用getSupportActionBargetActionBar

之前,您需要将工具栏设置为操作栏