WebViewのScrollBarを非表示にする

4,618 views
Skip to first unread message

mochico

unread,
Feb 22, 2011, 6:24:51 AM2/22/11
to 日本Androidの会
こんばんは、お世話になってますmochicoです。

今WebViewを継承してカスタムしたWebViewを使ったアプリを作成しています。

このWebViewのScrollBarをコード上から非表示にする方法はないでしょうか?
調べた中ではxmlから指定する以外の方法が見つかりませんでした。
不可能であれば上に別のViewを表示するしかないのかなくらいのことを考えております。
もしこのような「ごまかし」の案でも思いついた方がいらっしゃればご意見いただければと思います。

よろしくお願いいたします。

Stone

unread,
Feb 22, 2011, 7:38:17 AM2/22/11
to 日本Androidの会
Stone@調布、東京です。


私も前にそれに悩みました。
勝手にScrollBarが出るし、少しずれちゃう。
バー自体はこれで非表示に出来ます。

mWeb.setHorizontalScrollBarEnabled(false);

でもこれだとまだタッチでスクロールするので以下でスクロールしないようにします。


mWeb.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent event) {

return(event.getAction() ==
MotionEvent.ACTION_MOVE);
}
});

それでもまだ右に8ピクセルずれるのでその分調節します。
原始的ですけどそんな方法で対処しました。

Tetsuro Nakamura

unread,
Feb 22, 2011, 8:13:30 AM2/22/11
to android-g...@googlegroups.com, Stone
t2lowと申します。

横方向のズレは以下のようにオーバーライドすれば防げるかと思います。

@Override
protected int computeHorizontalScrollRange() {
return 0;
}

たぶんズレなくなると思いますが、実際の動作は確認してみてください。
以上です。


2011年2月22日21:38 Stone <ish...@cap.bekkoame.ne.jp>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

mochico

unread,
Feb 23, 2011, 1:03:04 AM2/23/11
to 日本Androidの会
> Stone@調布、東京さん

前のトピックも参考にさせていただいておりました。

ページを拡大した時は、スクロールバーなしでスクロールはさせたかったため
> mWeb.setHorizontalScrollBarEnabled(false);
のみでOKでした。
WebViewの詳しい使いかたはまだ詳しいドキュメントがあまり見つからなかったので
大変助かりました。
ありがとうございます。


>t2lowさん

ありがとうございます!

私の場合、
setVerticalScrollbarOverlay(true);
を先に指定してから
setHorizontalScrollBarEnabled(false);
することでズレの問題は回避してました。

ただ、CSSでコンテンツの幅を指定していないなど、
Webview以外での指定との兼ね合いもありそうです。
Reply all
Reply to author
Forward
0 new messages