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

ViewPager中带有setHasOptionsMenu的片段会多次调用onCreateOptionsMenu

汪泓
2023-03-14

所以我有一个用于片段的容器,称为“容器”,它是一个FrameLayout。

在这个容器中,我使用名为CollectionsFragment的视页放置了一个片段。

    null

我正在使用一个FragmentStatePagerAdapter,并将CollectionsFragment的getChildFragmentManager()传递给适配器。

我还有一个用于活动容器的onBackstackChangeListener,每当Backcack发生变化时,它就会使选项菜单无效:CollectionsFragment->AllCollectionsFragment(默认值)->Select CollectionsFragment->在Backcack和主容器中添加ViewCollectionsFragment->InvalidateOptionsFragment->AllCollectionsFragment->AllCollectionsFragment->InvalidateOptionsFragment->AllCollectionsFragment

有什么想法,为什么或者我应该给出更多的解释?

共有1个答案

壤驷睿
2023-03-14

我为这个“问题”做了一个变通办法。我在我的主活动中隐藏菜单(我通过它的标记检查片段是否在那里),如果backstack>0,我检查片段并隐藏菜单...

 类似资料:
  • 根据谷歌的文档: 现在可以在片段中嵌入片段。这对于各种情况都很有用,在这些情况下,您需要将动态和可重用的UI组件放置到本身是动态和可重用的UI组件中。例如,如果使用ViewPager创建左右滑动并占用大部分屏幕空间的片段,现在可以将片段插入每个片段页面。要嵌套片段,只需对要添加片段的片段调用getChildFragmentManager()。这将返回一个FragmentManager,您可以像通常

  • 但问题是espresso看起来是所有的页面,而不仅仅是当前页面,我得到以下错误: Android.support.test.espresso.ambiguousViewMatcherException:“with id:eu.airpatrol.android:id/container_weather”匹配层次结构中的多个视图...

  • 在使用带有片段的时,在选项卡之间移动时不会调用我们的和方法。我们有什么办法可以从碎片中找出我们是被发现还是被隐藏? 不幸的是,我在、中有逻辑,就像在location services注册一样,在切换选项卡时永远不会停止,因为在退出整个应用程序之前,永远不会调用。

  • 当我从listview中添加或删除一个项目时,listview不会更新,除非我在viewpager中滚动到屏幕外,然后返回,在片段中再次触发OnCreate方法。这是基于eclipse中的viewpager模板的,我只是在片段中添加了一个listview,而不仅仅是一个textview。将notifyDataSetChanged放置到片段中没有帮助,也没有向片段中添加OnResume。以下是主要活

  • 我需要扩展的。它没有错误,但当我试图在适配器中调用它时。 基本上,我需要显示片段B上的所有事件。如果我在没有片段的情况下测试它,它可以工作,但有了它们,它就成了一个小问题。我需要这些片段,因为用于滑动。 片段B代码: CustomListAdapter代码:公共类CustomListAdapter扩展BaseAdapter{private Activity;private LayoutInflat

  • 嗨,我在主片段内使用带有碎片网的viewPager。我试图从画廊或相机中获取图像到位图,但在选择照片并启动ActivityForResult后,它不会在onActivityResult中捕获... 以下是我如何调用startActivityForResult: 这是我的onActivityResult: 有什么想法吗?