我希望我的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外的屏幕时,它仍然只隐藏它,并且不会触发按钮事件。
有没有办法防止这种情况?
答案 0 :(得分:4)
锚点视图仅被MediaController
用作参考,以获取应该开始绘制控制器的位置。控制器本身是在窗口上浮动的新窗口中绘制的,所有视图都附加到该窗口。当创建MediaController
的实例时,构建该新的浮动窗口(使用内部API)并且触摸监听器与其装饰视图相关联,即与其整个表面相关联。这就是为什么触摸屏幕的任何部分会导致隐藏媒体控制器的原因,这就是为什么我认为没有简单的方法来自定义此行为:它可能需要您扩展或重新实现MediaController
。