1

我希望有人能帮助我解决这个问题:

我有两个主要层的 FrameLayout。视频层,播放流的地方,在它之上,有一个 WebView,它加载一个带有小部件的门户(HTML5/CSS/...),所以它看起来像电视上的 OSD。

当用户触摸屏幕时,显示节目信息、节目频道图标等。再次触摸,OSD 消失。用户可以在两个方向(无限循环)的通道之间滑动。所有这些手势都是在 WebView 中执行的,所以它们不是由 Android 处理的。门户和 Android 之间的通信是通过 Javascript 接口完成的(在我的 Web 视图层上启用)。

到目前为止,一切都很好。

当小部件被隐藏时,它们实际上并没有被隐藏,它们只是在我的平板电脑屏幕上显示出来,因为门户区域大于我的网络视图区域。我正在使用 match_parent 参数作为高度和宽度。

实际的问题是,有时当我用手指拖动时,我设法滚动 Web 视图(移动它),然后我看到了门户区域的其余部分,其中小部件被称为隐藏。

我想知道如何防止这种情况发生。我无法禁用 Web 视图的手势,我只想将其固定在左上角而不进行任何移动。

我希望有人能帮助我。非常感谢。马丁

4

1 回答 1

0

添加一个什么都不做的监听器。

webView.setOnTouchListener(new View.OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) {
      return (event.getAction() == MotionEvent.ACTION_MOVE);
    }
});

我想你也可以只使用

webView.setHorizontalScrollBarEnabled(false);

或者

webView.setVerticalScrollBarEnabled(false);

[编辑] 我应该补充一点,如果你只是禁用滚动条,你应该将你的 webview 包装在一个滚动视图中,这样它就不能真正滚动。

于 2013-01-04T16:25:51.160 回答