片段,并具有独立的工具栏活动是不工作的活动工具栏始终显示代替
我所试图实现的是将工具栏添加到我的片段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的工具栏。
这里是我能想到的几件事情是绝对不会理想:
- 使该片段的活动。
- 模拟,如果我创建了一个工具栏,但只是有定义,我已拼凑自己的UI元素的片段工具栏。
- 不知何故编辑父活动的工具栏,使其特定的片段,然后以某种方式重新绘制活动工具栏?这似乎很奇怪,我甚至不确定是否有可能。
有一个活动2个工具栏是不可取的,因为它会看起来非常糟糕。
与((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar);
您将使用您在片段的布局文件中定义的工具栏替换活动工具栏。
我建议你使用的工具栏片段具体行动的时候,这个片段显示在屏幕上,并通过
Toolbar mToolbar = ((AppCompatActivity) getActivity()).getSupportActionBar();
改变它的行为通过访问工具栏的内容现在使用的mToolbar改变行动
当然,但这也意味着一旦碎片完成,工具栏将保持更改,每个碎片更改?因此,现在如果我将这个片段替换为需要原始工具栏的片段,我需要将工具栏完全重新设置为原始状态,因为该工具栏已由第一个片段更改。 – AndFantasy
不完全...只是创建活动的方法来重新初始化工具栏,并从片段的'onDestroy'方法调用它 –
我只是切换到一个活动,而不是一个片段。无论如何,我认为它可能会更好,所以我就这样做了。感谢您的意见。 – AndFantasy
不要设置工具栏上的片段 – AbhayBohra
@AbhayBohra,当然,但是这将是解决问题的办法?我仍然需要提供这种行为。 – AndFantasy