小编Swa*_*ite的帖子

工具栏(SupportActionBar)标题在方向更改时更改为应用名称

我在我的活动中有这个代码:

protected void onCreate(Bundle savedInstanceState) {
    ...
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
      actionBar.setDisplayHomeAsUpEnabled(true);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在从以下各种片段更新ActionBar标题onResume():

ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
if (actionBar != null) {
    actionBar.setTitle(title);
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但在更改方向后,标题再次更改为应用程序名称.我怎么能克服这个?

编辑:经过调查更多,我试过这个,并发现这个奇怪的行为:添加此代码,我在片段中设置标题:

final ActionBar actionBar = ((AppCompatActivity)getActivity()).getSupportActionBar();
if (actionBar != null) {
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            Log.d("SWAPNIL", "IN RUN BEFORE: " + actionBar.getTitle());
            actionBar.setTitle(title);
            Log.d("SWAPNIL", "IN RUN AFTER : " + actionBar.getTitle());
        }
    }, …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-fragments

10
推荐指数
2
解决办法
5822
查看次数