Webviewインタフェースのスライドリスニング
7041 ワード
最近、ショッピングモールのアプリを書いていますが、原生とhtml 5が混在しています.このプロジェクトには、トップページにタイトルが必要です.図のように機能スキャンログインの機能を実現し、下全体がwebviewインタフェースで、下にスライドするとタイトルが消え、先端にスライドするとタイトルが表示されます.
以上の機能を完了するには、webviewインタフェースをスライドリスニングします.
まず、Mywebviewをカスタマイズします.コードは次のとおりです.
次に、Webviewインタフェースを作成するときにカスタマイズしたMyWebViewを使用して、スライドリスニングを行います.コードは次のとおりです.
スライドを開始したときとローエンドにスライドしたとき、タイトルバーが非表示になり、トップにスライドすると、タイトルバーが表示され、効果が得られます.
以上の機能を完了するには、webviewインタフェースをスライドリスニングします.
まず、Mywebviewをカスタマイズします.コードは次のとおりです.
public class MyWebView extends WebView {
private OnScrollChangeListener mOnScrollChangeListener;
public MyWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
// webview
float webcontent = getContentHeight() * getScale();
// webview
float webnow = getHeight() + getScrollY();
if (Math.abs(webcontent - webnow) < 1) {
//
mOnScrollChangeListener.onPageEnd(l, t, oldl, oldt);
} else if (getScrollY() == 0) {
//
mOnScrollChangeListener.onPageTop(l, t, oldl, oldt);
} else {
mOnScrollChangeListener.onScrollChanged(l, t, oldl, oldt);
}
}
public void setOnScrollChangeListener(OnScrollChangeListener listener) {
this.mOnScrollChangeListener = listener;
}
public interface OnScrollChangeListener {
public void onPageEnd(int l, int t, int oldl, int oldt);
public void onPageTop(int l, int t, int oldl, int oldt);
public void onScrollChanged(int l, int t, int oldl, int oldt);
}
}
次に、Webviewインタフェースを作成するときにカスタマイズしたMyWebViewを使用して、スライドリスニングを行います.コードは次のとおりです.
mWebView.setOnScrollChangeListener(new MyWebView.OnScrollChangeListener() {
@Override
public void onPageEnd(int l, int t, int oldl, int oldt) {
mTitleLin.setVisibility(View.GONE);
}
@Override
public void onPageTop(int l, int t, int oldl, int oldt) {
mTitleLin.setVisibility(View.VISIBLE);
}
@Override
public void onScrollChanged(int l, int t, int oldl, int oldt) {
mTitleLin.setVisibility(View.GONE);
}
});
スライドを開始したときとローエンドにスライドしたとき、タイトルバーが非表示になり、トップにスライドすると、タイトルバーが表示され、効果が得られます.