片段,并具有独立的工具栏活动是不工作的活动工具栏始终显示代替

问题描述:

我所试图实现的是将工具栏添加到我的片段UI时,我的活动也有,是不是该片段中所示的吧。基本上,我的Activity和Fragment如何有自己的工具栏?片段,并具有独立的工具栏活动是不工作的活动工具栏始终显示代替

这是我在我的活动代码

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mToolbar = (Toolbar) findViewById(R.id.my_toolbar); 
    setSupportActionBar(mToolbar); 
} 

这里是我在我的片段代码

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    mView = inflater.inflate(R.layout.fragment_layout, container, false); 
    mToolbar = (Toolbar) mView.findViewById(R.id.fragment_toolbar); 
    ((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar); 
    return mView; 
} 

我得到的是,当我创建我的片段中的工具栏,该工具栏活动的工具栏。我想要做的是我希望这个片段拥有独立于其父Activity的工具栏。

这里是我能想到的几件事情是绝对不会理想:

  1. 使该片段的活动。
  2. 模拟,如果我创建了一个工具栏,但只是有定义,我已拼凑自己的UI元素的片段工具栏。
  3. 不知何故编辑父活动的工具栏,使其特定的片段,然后以某种方式重新绘制活动工具栏?这似乎很奇怪,我甚至不确定是否有可能。
+0

不要设置工具栏上的片段 – AbhayBohra

+0

@AbhayBohra,当然,但是这将是解决问题的办法?我仍然需要提供这种行为。 – AndFantasy

有一个活动2个工具栏是不可取的,因为它会看起来非常糟糕。

((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar); 您将使用您在片段的布局文件中定义的工具栏替换活动工具栏。

我建议你使用的工具栏片段具体行动的时候,这个片段显示在屏幕上,并通过

Toolbar mToolbar = ((AppCompatActivity) getActivity()).getSupportActionBar(); 

改变它的行为通过访问工具栏的内容现在使用的mToolbar改变行动

+0

当然,但这也意味着一旦碎片完成,工具栏将保持更改,每个碎片更改?因此,现在如果我将这个片段替换为需要原始工具栏的片段,我需要将工具栏完全重新设置为原始状态,因为该工具栏已由第一个片段更改。 – AndFantasy

+0

不完全...只是创建活动的方法来重新初始化工具栏,并从片段的'onDestroy'方法调用它 –

+0

我只是切换到一个活动,而不是一个片段。无论如何,我认为它可能会更好,所以我就这样做了。感谢您的意见。 – AndFantasy