Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当嵌套片段可见时,如何设置操作栏选项菜单?_Java_Android_Android Fragments - Fatal编程技术网

Java 当嵌套片段可见时,如何设置操作栏选项菜单?

Java 当嵌套片段可见时,如何设置操作栏选项菜单?,java,android,android-fragments,Java,Android,Android Fragments,我需要能够清除操作栏菜单,当特定的嵌套片段变得可见时,从嵌套片段中膨胀一个新的 我的应用程序由一个主活动和一个使用FragmentPagerAdapter的ViewPager组成。此ViewPager有4个根片段,它们只是空白的框架布局(每个页面中有一个),每个都包含并交换嵌套片段。这些嵌套片段可以是不同的,也可以是相同的类型(想想Instagram如何在多个选项卡中显示不同的纵断面图)。这意味着我不能使用onPrepareOptions菜单在页面滑动上膨胀菜单,因为我不知道每个页面的根片段中有

我需要能够清除操作栏菜单,当特定的嵌套片段变得可见时,从嵌套片段中膨胀一个新的

我的应用程序由一个主活动和一个使用FragmentPagerAdapter的ViewPager组成。此ViewPager有4个根片段,它们只是空白的框架布局(每个页面中有一个),每个都包含并交换嵌套片段。这些嵌套片段可以是不同的,也可以是相同的类型(想想Instagram如何在多个选项卡中显示不同的纵断面图)。这意味着我不能使用onPrepareOptions菜单在页面滑动上膨胀菜单,因为我不知道每个页面的根片段中有哪个嵌套片段。此外,我还将offScreenPageLimit设置为3,这样就可以在根片段之间滑动,而无需重新加载。这意味着我不能仅仅从嵌套片段中膨胀菜单,因为这样所有四个嵌套片段的菜单都会出现

理想的解决方案是能够通过某种回调从嵌套片段中膨胀菜单,这种回调在嵌套片段真正显示在屏幕上时执行,例如,当我们滑动到包含嵌套片段的根片段的页面时,或者,我们将嵌套片段替换为页面根片段中的另一个片段。有人对我遇到的问题有设计解决方案吗?谢谢你的帮助

理想的解决方案是能够通过某种回调从嵌套片段中膨胀菜单,这种回调在嵌套片段真正显示在屏幕上时执行

  • 在菜单目录中为片段创建菜单
  • 报告此片段具有“选项”菜单
  • 然后只需将其充气,然后覆盖,当片段变得可见时,片段菜单中的那些菜单选项将添加到活动菜单选项中

  • 不完全是。这自然是我尝试的第一件事。当我这样做时,我的所有片段菜单项将立即填充操作栏,因为我的视图页面中的所有四个可见片段都是同时创建并同时运行的。好的,你知道这个练习,然后创建一个没有UI的片段,并添加它只是为了菜单膨胀。谢谢你的跟进!这难道不是同样的问题吗?如果我添加了一个没有UI的片段,该片段没有处理将菜单膨胀到每个根片段中的UI,那么所有四个菜单都将膨胀,并且我的操作栏中将包含所有项,因为所有无UI的片段都将同时运行。如果这不是你的意思,那么我可能不理解你的建议。我的意思是除了4个根片段之外,只创建一个完全独立的片段,没有UI(第五个)(onCreateView()返回null)。不过,只有当您的4个根片段都有类似的菜单项时,它才会起作用。然后你可以根据你现在看到的片段来处理这些菜单项等等。。。但我可能不完全清楚您的用例。