5

我希望我的 MediaController 仅在用户仅触摸屏幕的下半部分时隐藏,因为我在顶部有一些按钮需要一键访问。也就是说,没有第一次点击被 MediaController 拦截。

从我在开发人员文档上读到的内容:

...具体来说,控件将浮动在 setAnchorView() 指定的视图之上。如果闲置三秒钟,窗口将消失,并在用户触摸锚点视图时重新出现。

我的 anchor_view 布局:

<View android:id="@+id/player_control" 
    android:layout_width="wrap_content"
    android:layout_height="100dip"
    android:layout_alignParentBottom="true">
</View >    

然而,当控制器打开时,每当我触摸anchor_view 之外的屏幕时,它仍然只会隐藏它,并且不会触发按钮事件。

有没有办法防止这种情况?

4

1 回答 1

4

锚视图MediaController仅用作参考来获取它应该开始绘制控制器的位置。控制器本身被绘制在一个新窗口中,该窗口浮动在所有视图都附加到的窗口上。当一个实例MediaController被创建时,这个新的浮动窗口被构建(使用一个内部API)并且一个触摸监听器被关联到它的装饰视图,即它的整个表面。这就是为什么触摸屏幕的任何部分都会导致隐藏媒体控制器的原因,这就是为什么我认为没有简单的方法来自定义这种行为:它可能需要您扩展或重新实现MediaController.

于 2012-06-18T14:11:50.400 回答