1

私は誰かがこの問題で私を助けてくれることを願っています:

2つのメインレイヤーを持つFrameLayoutがあります。ストリームがブロードキャストされるビデオレイヤーとその上に、ウィジェットを含むポータル(HTML5 / CSS / ...)をロードするWebViewがあるため、TVではOSDのように見えます。

ユーザーが画面をタッチすると、プログラム情報、プログラムチャンネルアイコンなどが表示されます。もう一度タッチすると、OSDが消えます。ユーザーはチャネル間を両方向にスワイプできます(無限ループ)。これらのジェスチャはすべてWebViewで実行されるため、Androidでは処理されません。ポータルとAndroidの間の通信は、Javascriptインターフェース(私のWebビューレイヤーで有効)を介して行われます。

ここまでは順調ですね。

ウィジェットが非表示になっている場合、実際には非表示ではなく、ポータル領域が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);

[編集]スクロールバーを無効にするだけの場合は、実際にスクロールできないようにWebビューをスクロールビューでラップする必要があることを追加する必要があります。

于 2013-01-04T16:25:51.160 に答える