两个碎片,其中只有一个具有工具栏

时间:2017-05-15 10:57:57

标签: java android android-fragments android-toolbar

我有两个Fragments,其中A有toolbar而B没有。{在B的onCreateView中,我称之为:

((MainActivity) getActivity()).hideToolbar();

基本上是:

if (getSupportActionBar() != null)
    getSupportActionBar().hide();

当我从B切换到A时,我打电话:

getFragmentManager()
    .beginTransaction
    .setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right)
    .hide(getFragmentManager().findFragmentByTag("B"))
    .commit();
// Opposite of hiding toolbar method
((MainActivity) getActivity()).showToolbar();

然后显示工具栏,问题是工具栏在FragmentTransaction完成之前显示。如果我等到事务完成以显示工具栏,它将看起来很愚蠢,因为在显示工具栏之前整个片段是可见的。有没有办法将一个片段显示在另一个片段之上,其中顶部显示的片段没有工具栏,而下面的片段在隐藏时保留其工具栏?

1 个答案:

答案 0 :(得分:1)

在要隐藏工具栏的片段中,添加此代码

 @Override
 public void onResume() {
   super.onResume();
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
 }


@Override
public void onStop() {
   super.onStop();
  ((AppCompatActivity)getActivity()).getSupportActionBar().show();
 }