gpt4 book ai didi

android - 如何从子 fragment 中隐藏 FAB?

转载 作者:行者123 更新时间:2023-11-29 02:20:12 29 4
gpt4 key购买 nike

好吧,我有一个 Activity(带有 ViewPager 和 FAB)

在ViewPager中有一个NotesFragment( fragment 只包含RecyclerView)

我有一个 Fragment 调用 AddNoteFragment 来完成添加和显示现有注释的工作:1)从Activity fab打开AddNoteFragment添加note,符合逻辑,2) 从 RecyclerView 中,单击项目打开 AddNoteFragment,其中包含单击项目的详细信息

问题:当我打开 AddNoteFragment 以正确显示令人兴奋的音符时,如何在 Activity 上隐藏 FAB?我知道的唯一方法是使用接口(interface)并将其向上传输,但这看起来像 RecyclerViewAdapter -> NotesFragment -> ViewPagerAdapter -> Activity,看起来很奇怪..

最佳答案

虽然我认为使用接口(interface)是一个很好的方法,但您可能想看看 EventBus ( https://github.com/greenrobot/EventBus ),它的工作方式与 BroadcastReceiver 类似,您所要做的就是等待您的事件 Activity ,并随时隐藏/显示它。以下是您必须在 Activity 中使用的代码:

@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}

@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}

@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(Boolean show) {if (show){
fab.show()
}else{
fab.hide()
}};

然后,只要你想,你只需要调用它

EventBus.getDefault().post(/* true or false*/);

关于android - 如何从子 fragment 中隐藏 FAB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56633110/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com