Android actionBar.setTitle使getActivity.setTitle()无法工作

Android actionBar.setTitle使getActivity.setTitle()无法工作,android,android-actionbar,android-support-library,Android,Android Actionbar,Android Support Library,我有一个Android应用程序,它由几个片段组成。 每次显示片段时,我都将ActionBar标题设置为该片段 我是和你一起做的 getActivity().setTitle("abc"); 稍后在应用程序中,我需要更多地使用片段的ActionBar。所以我不得不这样修改标题: ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); if (actionBar != null) act

我有一个Android应用程序,它由几个片段组成。 每次显示片段时,我都将ActionBar标题设置为该片段

我是和你一起做的

getActivity().setTitle("abc");
稍后在应用程序中,我需要更多地使用片段的ActionBar。所以我不得不这样修改标题:

ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
if (actionBar != null)
   actionBar.setTitle("xyz");
这可以很好地工作,并将标题更改为“xyz”。 当从活动本身更改为使用setTitle(“abc”)的另一个片段时,标题仍然保持在“xyz”。第一次这样做之后,我只能使用getSupportActionBar()对象更改标题


我的问题是:这正常吗?此调用是否会以某种方式转换/使正常活动标题无效

如果检查活动源代码,setTitle()方法会将文本设置为actionBar本身

假设有两个片段,A和B

默认情况下,片段A将显示在活动中

因此,稍后当您从片段B更新标题时,使用getSupportActionBar()或getActionBar()方法并更新标题

由于这是最近发生的更改,即使返回到上一个片段,即片段A,标题也将与片段B中设置的标题相同


如果要再次更改标题,请在片段A的onResume()方法中执行此操作。

如果检查活动源代码,setTitle()方法会将文本设置为actionBar本身

假设有两个片段,A和B

默认情况下,片段A将显示在活动中

因此,稍后当您从片段B更新标题时,使用getSupportActionBar()或getActionBar()方法并更新标题

由于这是最近发生的更改,即使返回到上一个片段,即片段A,标题也将与片段B中设置的标题相同

如果您想再次更改标题,请在片段A的onResume()方法中执行此操作。

我实际上是在onResume()上执行此操作的,正如我所说的,使用getSupportActionBar()可以很好地工作,即使在以后的调用中也是如此。它只是“中断”了活动的setTitle(),实际上我是在resume()上执行的,正如我所说的,使用getSupportActionBar()可以很好地工作,即使在以后的调用中也是如此。它只是“断开”活动的setTitle()。