1. 背景
我有一个屏幕
ShareActionProvider
和一个
ViewPager
使用片段。
我希望做的是从当前可见的片段中获取一些信息来创建一个意图,然后我就可以在 ShareActionProvider 上设置这个意图。
这是我用来设置 ShareActionProvider 意图的代码:
MenuItem actionItem = men.getMenu().findItem(R.id.menu_item_share_action_provider_action_bar);
ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider();
actionProvider.setShareIntent(createShareIntent(mProduct.mProduct));
我已经尝试在几个地方使用它,例如在 Fragment 类的这些函数中:
onCreateView
onStart
我也尝试在 FragmentPagerAdapter 类中的这些函数中使用它:
getItem
2.问题
虽然意图实际上是在 ShareActionProvider 中设置的,但获得的信息是用于下一个片段(当前未显示的片段)。例如:
如果我有 4 个片段:frag1、frag2、frag3、frag4 并且我当前正在查看“frag1”,ShareActionProvider 将尝试共享“frag2”。这是真的,直到它到达“frag4”,它将共享正确的值。
我的猜测是片段分页器创建了当前视图和下一个视图(隐藏),这反过来又设置了 ShareActionProvider。如果是这种情况,那么“setShareIntent”的正确位置在哪里?