gpt4 book ai didi

Android - VideoView - onTouch 的行为不符合预期

转载 作者:太空狗 更新时间:2023-10-29 13:35:45 25 4
gpt4 key购买 nike

我正在按照教程尝试通过 Android 的 VideoView 构建自定义视频播放器。
现在,当我触摸 VideoView 时,我想显示或隐藏媒体 Controller 。如果 Controller 已经显示,则隐藏它们,如果它们已隐藏,则显示它们。

这些媒体 Controller 由位于 VideoView 之上的 2 个 LinearLayouts 表示。用红色突出显示的区域代表背景中的 VideoView 边框。

我的问题是,当我触摸与 VideoView 重叠的媒体 Controller 区域时,媒体 Controller 被隐藏。这不是想要的效果,因为我没有直接接触 VideoView,而是 LinearLayout。

那么,当我点击 LinearLayouts 时,为什么 Videoview 会捕获触摸事件?

enter image description here

这是我的 onTouch 实现:

@Override
public boolean onTouch(View v, MotionEvent event) {

if (!isMediaControlerShown) {
topPanel.setVisibility(View.VISIBLE);
bottomPanel.setVisibility(View.VISIBLE);
isMediaControlerShown = true;
} else {
topPanel.setVisibility(View.GONE);
bottomPanel.setVisibility(View.GONE);
isMediaControlerShown = false;
}
return false;
}

以及 XML 布局的架构:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<VideoView
android:id="@+id/videoView"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:layout_height="wrap_content" />

<!-- The top panel of the Video Player -->

<LinearLayout
android:visibility="gone"
android:id="@+id/top_panel"
style="@style/VideoTopPanel"
android:orientation="vertical" >

<!-- ////// -->
</LinearLayout>

<!-- The bottom panel of the Video Player -->

<LinearLayout
android:visibility="gone"
android:id="@+id/bottom_panel"
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/VideoBottomPanel"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:paddingBottom="@dimen/video_bottom_panel_padding_bottom"
android:paddingTop="@dimen/video_bottom_panel_padding_top" >

<!-- ////// -->
</LinearLayout>
</RelativeLayout>

最佳答案

通过为持有控件的 View 设置点击监听器解决了这个问题,但在 onClick() 上什么都不做这样, View 接收到点击事件并没有消失。

关于Android - VideoView - onTouch 的行为不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10852442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com