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

每次单击导航抽屉项时刷新片段

施宏大
2023-03-14

我有导航抽屉的BaseActivity,我在其中使用片段管理器在片段布局中显示/隐藏片段,当单击每个导航抽屉项时,我希望每次单击导航项时都刷新我的片段。我尝试了两种方法,例如片段附加/分离,但它不起作用,有谁能帮我在每次点击导航项时刷新我的片段吗。

共有1个答案

阎修杰
2023-03-14

我认为您可以从这个导航抽屉回调中广播更新操作:

public boolean onNavigationItemSelected(MenuItem item) {
        Intent intent = new Intent(ACTION_UPDATE); // Just string constant
        getActivity().sendBroadcast(intent);
        return false;
}

然后在您的片段中注册接收器:

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    getActivity().registerReceiver(updateReceiver, new IntentFilter(Consts.ACTION_KEYPAD_DISARMED));
}

@Override
public void onDetach() {
    super.onDetach();
    getActivity().unregisterReceiver(updateReceiver);
}

private BroadcastReceiver updateReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // Write here code of fragment updating
    }
};
 类似资料:
  • 我在我的应用程序中使用抽屉菜单,并实现了在NavigationDrawer片段类中切换片段的逻辑。我最近读到片段切换只能从托管活动中发生。 有一个从NavigationDrawerFragment调用的接口,用于通知导航抽屉列表视图中所选位置的MainActivity。 我感到困惑的是,在Mainactive中有一个静态片段,它是使用NavigationDrawer片段中接口提供的位置调用的。 P

  • 我有导航抽屉和在导航视图,当我点击任何项目,我的前5项文本变成粗体。我试图删除片段调用,但它仍然全部变成了粗体。不管我点击哪个项目,它总是变成前5个项目,变成粗体。 XML

  • 我想使用Android Studio的默认导航抽屉活动(v.3.5)。创建此默认活动后(New Project-- 经过一整天的研究,我在Stackoverflow上发现了以下问题:NavigationView点击事件非常相似,但没有得到真正的回答。下一个有趣的问题是,如果我使用按钮导航活动,这个模板可能会工作,我无法真正找出与导航抽屉活动模板的区别。我还发现了其他几种适用于旧模板的解决方案。我不

  • 虽然我一直在四处寻找,但找不到正确的答案。在我的抽屉菜单头,我为用户提供了他的图像和姓名,但我也允许用户从应用程序中更改他/她的姓名和图像。这些更改存储在会话管理器中。现在我想在我的抽屉菜单头反映这些更改。一切都很好,因为当我关闭应用程序并再次运行它时,它显示了更改。所以现在我需要的是一种刷新抽屉菜单头的方法。 从配置文件片段中的库中选择图像。 主页活动

  • 有什么方法可以确保抽屉菜单保持在片段内容的顶部吗? 我用虚拟数据创建了一个小测试应用程序。10个片段,带有相应的编号按钮和文本视图。问题在于片段元素似乎比导航抽屉具有更高的优先级。 如屏幕截图所示,一旦我试图打开“0片段”,它就会选择注册点击导航抽屉后面的按钮。按下任何其他内容项都可以,但只要它们下面没有其他可交互的项。我该怎么做才能让导航抽屉正确地位于其后面内容的顶部?

  • 我有一个主活动启动导航抽屉。 也有一些片段。 我需要从片段内部更改导航抽屉列表的标题。 我尝试了这个内部片段: 但是到目前为止还没有运气。这是我的主要活动: 在主活动类中使用相同的方法有效,但在片段中无效。我不知道如何更新字符串并通知抽屉此更改!