每个人都有问题,无法解决问题;
问题是我的mainActivity包含工具栏是它的xml 在onCreate()中,我使用此代码添加片段1
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
// put the fragment to the Main Activity
mainFragment = (MainFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_container);
if (mainFragment == null) {
mainFragment = MainFragment.newInstance();
getSupportFragmentManager()
.beginTransaction()
.add(R.id.fragment_container, mainFragment)
.commit();
}
} catch (Exception e) {
goToMainFragment();
// Log.v("goToMainFragment()", "goToMainFragment()");
}
}
然后我有按钮例如或点击它时从抽屉转到使用此代码的片段2
public void editTimeSheet() {
AddTimeSheetFragment timeSheetFragment = new AddTimeSheetFragment();
Bundle bundle = new Bundle();
bundle.putInt("action", 2);
bundle.putSerializable("timeSheet", timeSheet);
timeSheetFragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, timeSheetFragment).addToBackStack("stack").commit();
}
当然在每个片段中我使用更改工具栏标题 getActivity()。setTitle("某个标题");
但问题是当我回来使用onBackPressed标题没有改变,仍然是从片段2设置的标题,我知道为什么因为我改变了活动的工具栏标题,当我回到片段1 onCreateView没有调用所以标题没有改变,我尝试调用片段生命周期方法,所以任何方法已经在后退按钮中调用我将更改工具栏标题,但似乎没有方法回来时调用
对不起,如果问题不够清楚,但我写得最好并描述问题,谢谢你的时间
答案 0 :(得分:0)
好的没有人回答我,经过长时间的研究后我发现了这个并且它的工作
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (hidden) {
// Toast.makeText(getContext(), "hide fragment", Toast.LENGTH_SHORT).show();
} else {
// Toast.makeText(getContext(), "show fragment", Toast.LENGTH_SHORT).show();
setToolbarTitle();
}
}
返回片段1后,使用hidden value = false
调用此方法