我在我的活动中有这个代码:
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)