显示弹出窗口时,setVolumeControlStream不起作用

时间:2012-03-29 12:43:34

标签: java android

我的应用程序中的所有活动开始时都有this.setVolumeControlStream(AudioManager.STREAM_MUSIC);,因此当用户按下音量增大或减小按钮时,他会控制媒体音量。

我的程序中有一个弹出窗口,当出现时,用户无法再控制音量。

查看类似的问题似乎设置onKeyup/down个侦听器可能会干扰该过程 - 但我没有设置任何内容 - 我对弹出窗口的唯一监听器是setOnClickListeners按钮和窗口setOnDismissListener

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:1)

您似乎必须在Dialog对象上调用setOwnerActivity

方法的文件:

  

设置拥有此对话框的Activity。使用示例:此对话框将使用活动的建议音量控制流。

虽然没有经过测试,但这应该可以解决问题。也可以使用setVolumeControlStream

答案 1 :(得分:0)

我一直在用

创建弹出窗口
my_popup_window = new PopupWindow(layout, x, y,  true);

然后我将其更改为此...

my_popup_window = new PopupWindow(layout);
my_popup_window.setWidth(x);
my_popup_window.setHeight(y);

并且音量控制再次开始工作。我不明白为什么 - 但它奏效了。

答案 2 :(得分:0)

我这样做pop.setFocusable(false)。它起作用了。

答案 3 :(得分:0)

虽然米克的答案对我不起作用,但这是为了后代。

//Declaration
PopupWindow mWindow;
...

//Constructor
mWindow     = new PopupWindow(context);
...

//Prepare to Show
mWindow.setContentView();
mWindow.setBackgroundDrawable();
mWindow.setFocusable(false);
...

setFocusable 设置为 false 帮助我的活动再次捕获onKeyDown()