在 viewpager 中访问相机硬件的两个片段

Posted

技术标签:

【中文标题】在 viewpager 中访问相机硬件的两个片段【英文标题】:Two fragments accessing the camera hardware in a viewpager 【发布时间】:2019-01-30 13:43:14 【问题描述】:

我有一个包含三个片段的 ViewPager。对于最后两个片段,我需要访问相机。

现在我无法为最后两个片段创建两个不同的片段,因为两个片段无法同时访问相同的相机硬件。

所以我只希望当我从片段 2 转到 3 时,标签布局的滑块像往常一样移动,但片段应该是相同的。

我应该寻求什么可能的解决方案?有没有办法可以使用视图寻呼机和选项卡布局来实现这一点,或者我必须使用动画创建自己的滑块?

【问题讨论】:

不,你不应该给出片段重用的错觉。从不同的地方访问相同的功能似乎是一个糟糕的用户体验。但是,如果您仍然想从两个不同的片段访问相机,则在一个片段中暂停相机并在另一个片段中恢复。 setUserVisibilityHint(boolean isVisible) 是关键。 【参考方案1】:

您必须在片段 2 中释放相机并在切换到片段 3 时重新连接。

【讨论】:

【参考方案2】:

所以我实现这一点的方法是使用视图寻呼机转换器。当我从片段 2 移动到片段 3 时,我将片段平移到相反的方向。因此,下面的选项卡发生了变化,但片段保持不变。

虽然我在从片段 2 移动到片段 3 时将相机会话从视频更改为图片,反之亦然

【讨论】:

以上是关于在 viewpager 中访问相机硬件的两个片段的主要内容,如果未能解决你的问题,请参考以下文章

onActivityResult 不会从 viewPager 片段调用

Android ViewPager,片段中的cameraview未显示

ViewPager的两个片段并行运行

如何在另一个片段中访问和使用一个片段的按钮?

刷新标签片段和 viewpager

从 ViewPager Activity 访问 Fragment 的方法