WebView顶部有滚动条

时间:2014-12-27 02:24:16

标签: android webview scrollview

我必须创建一个与Chrome非常相似的应用程序。换句话说,我必须创建一个WebView,并在其顶部创建一个栏:

    当用户向下滚动页面时,
  • 消失(条形图随页面滚动),
  • 当用户向上滚动页面时
  • 重新出现,
  • 当用户滚动页面以便只有一半的条形可见时,它就会消失。

重要的(可能)是我无法修改显示的HTML。我已经想到的是我应该创建自己的类来扩展WebView并覆盖其中的onScrollChanged()。这就是我设法写的:

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
    super.onScrollChanged(l, t, oldl, oldt);

    if (flag) {
        flag = false;
        return;
    }
    View bar = getRootView().findViewById(R.id.bar);
    if (bar != null) {
        int difft = oldt - t;
        float oldY = bar.getTranslationY();
        float newY = Math.max(-bar.getHeight(), Math.min(0, bar.getTranslationY() + difft));
        bar.setTranslationY(newY);
        View layout = getRootView().findViewById(R.id.layout);
        layout.setTranslationY(bar.getHeight() + newY);

        flag = true;
        if ((int) (newY - oldY) != 0) {
            scrollBy(0, difft);
        }
    }
}

(布局是WebView所在的容器,而bar是顶部栏。我将两个视图放在RelativeLayout中)

而且,它几乎可以工作。差不多,因为它会导致一些闪烁,我不知道是什么问题。此外,它并没有解决问题#3(我实际上并不知道如何通过最简单的方式解决它,使用某种类型的动画,如在Chrome中 - 顺利向上移动)。

0 个答案:

没有答案