DialogFragment 中实现的 videoview 的 MediaController 未正确更新

Posted

技术标签:

【中文标题】DialogFragment 中实现的 videoview 的 MediaController 未正确更新【英文标题】:MediaController of videoview implemented in DialogFragment not updating correctly 【发布时间】:2017-07-11 04:59:51 【问题描述】:

videoview 的 MediaController 在 Activity 中实现时按预期工作。但是根据我在 DialogFragment 中实现相同的应用程序要求。 MediaController 位于 videoview 后面。我可以通过使用框架布局并借助以下代码来解决这个问题:

((ViewGroup) mediaController.getParent()).removeView(mediaController);
((FrameLayout) rootView.findViewById(R.id.videoViewWrapper)).addView(mediaController);

上面的代码将媒体控件带到了前台。但是搜索栏更新不正确。它卡在某个位置。只有当用户触摸屏幕/符号时,它才会正确更新。

如何让它在 DialogFragment 中正确更新?与以前在 Activity 中工作的方式相同(创建自定义媒体控件组件将是最后的选择)。

任何帮助都将不胜感激。

【问题讨论】:

想详细了解您的代码吗? @BhavdipSagar 你想知道什么?如果你可以指定我可以编辑和添加只需要。 【参考方案1】:

MediaController 在 FrameLayout 时,我也遇到了 seek-bar 更新问题。所以我删除了 FrameLayout,水平居中的问题就这样解决了。希望这可以帮助某人节省时间。

WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
    Window window = getWindow();
    layoutParams.copyFrom(window.getAttributes());
    layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
    layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
    window.setAttributes(layoutParams);

【讨论】:

以上是关于DialogFragment 中实现的 videoview 的 MediaController 未正确更新的主要内容,如果未能解决你的问题,请参考以下文章

警告:在两个 SDK 中实现的类

安装 BPL 以及在其他 BPL 中实现的组件

python Python中实现的单例,双重判断

命令建议是如何在 bash shell 中实现的?

确定子类是不是具有在 Python 中实现的基类方法

调用 Swift 协议扩展方法而不是子类中实现的方法