当前位置: 首页 > 知识库问答 >
问题:

Android:如何在碎片发生变化时重新创建动作条

姬慎之
2023-03-14

我在片段中重写onCreateOptionsMenu()方法,为任何片段创建单独的操作条:

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
    {
        super.onCreateOptionsMenu(menu, inflater);
        menu.clear();

当我刷时,新的片段出现,但动作条保持不变几秒钟。可能几秒钟后,这个方法就会被调用,操作条也会被更改。

这看起来相当糟糕,当动作条改变后,一段时间,刷完成。我如何重新创建动作条,在刷开始之前?

共有1个答案

凌波峻
2023-03-14

您可以通过调用invalidateOptionsMenu();来要求android在自动创建之前重新创建actionbar

在靠近更改片断的地方执行此操作,以尝试减少片断与actionbar更改之间的“滞后”。

编辑

class activity extends Activity{

private void switchFragment(){

...do fragment changing stuff

activity.invalidateOptionsMenu();

}

}

class someFragment extends Fragment{

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
    super.onCreateOptionsMenu(menu, inflater);
    menu.clear();


    //fragment specific menu creation
}

}

过程中打开的任何一个片段

activity.invalidateOptionsMenu();

然后调用它的

 onCreateOptionsMenu

您可以在其中创建片段特定的菜单

 类似资料:
  • 我正在开发一个应用程序,基本上有一个行动栏。当我的应用程序启动时,活动创建片段并将它们附加到每个标签上,所以当我切换时,我会得到不同的视图。 当我试图旋转设备时,问题就出现了。经过一番挣扎,我注意到Android会像这样自动重新创建之前添加的片段:

  • 我可以使用一个片段作为一个活动吗?我已经创建了一个片段,但我希望它有像活动一样的功能,所以我使用片段扩展碎片活动。然而,我有一个带有碎片的导航抽屉。当我更改为“扩展碎片活动”时,我的代码有问题?请给我指路。

  • 我有一个带有FragmentStateAdapter()适配器的viewpage er2。我还有一个带有4个选项卡的选项卡布局。我为所有选项卡使用单个片段。这被命名为AllOrdersTabb。在我的架构中,我只是发送不同的值来将不同的API数据加载到AllOrdersTab片段。当选择每个选项卡布局时,创建一个片段并首次为所有4个片段正常工作。之后,如果我刷回上一个选项卡,它就不会再次创建或刷新

  • 这似乎是一个具有挑战性的动画,但我有一种感觉,这可以很容易地完成。我正在尝试实现如下所示的片段之间的动画(请参阅第二和第三象限) 进入和退出并不难,但是预显示下一张和上一张卡片的屏幕以及无缝切换到下一张卡片超出了我的知识范围。如果有人制作过类似的动画,请给我一些指点。 编辑 Android的官方文档在点击时过渡,即当用户点击页面缩小以显示最后一页和上一页时,滑动将其移动到下一页。我的要求是将页面保

  • 我正在用android创建一款纸牌游戏(21点)。前两张卡是easy card1和card2,但是我想按一下“点击我”按钮,发一张新卡,并将其分配给card3、card4等。有没有任何方法可以做到这一点,而无需创建所需的最大变量数,并使用if-then语句检查它们是否被分配了值?