1

WebView に Web ページをロードしたアプリケーションを作成しています。そこに edittext を含むレイアウトが 1 つあります。ユーザーが webview で下にスクロールしているときにレイアウトを非表示にし、ユーザーが上にスクロールしたときに再び表示したい。私は使ってみonTouchましたが、それだけで十分MotionEvent.ACTION_MOVEです。ここで私のコードは次のようになります。

@Override
public boolean onTouch(View v, MotionEvent event) {
    if (v.getId() == R.id.web
            && event.getAction() == MotionEvent.ACTION_MOVE) {
        handler.sendEmptyMessageDelayed(CLICK_ON_URL, 2000);
    }
    return false;
}

@Override
public boolean handleMessage(Message msg) {
    if (msg.what == CLICK_ON_URL) {
        top.setVisibility(LinearLayout.GONE);
        return true;
    }
    return false;
}

ここでわかるように、私は を使用していますtop.setVisibility(LinearLayout.GONE);が、これは私の問題を解決するものではなく、レイアウトを完全に隠してしまいます。

この問題を克服する方法を考えてください。

4

1 に答える 1

2

レイアウトと webView の両方を scrollView 内にラップできます。そのため、ユーザーが下にスクロールすると、親がスクロール イベントをキャッチします。参考のため、

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg_main" >

<!-- Both your views goes here -->

</ScrollView>

それが役立つことを願っています。

于 2012-10-09T04:40:24.080 に答える