在 Android 中裁剪 WebViews

问题描述 投票:0回答:3

我有一个使用标准调用加载网页的 WebView。

我使用的

Kotlin
代码-

myWebView.settings.javaScriptEnabled = true

val projectUrl: String = "Web page URL"
myWebView.loadUrl(projectUrl)

有了这个,我就可以很好地看到我的网页,我想要做的就是裁剪网页,比如不显示加载网页的顶部 20 像素或底部 20 像素。我怎么能做到这一点?

我更倾向于真实的解决方案,但我也可以为此实施黑客攻击。

android android-layout kotlin android-webview android-xml
3个回答
1
投票

我想问更多细节,为什么你会想做这样的事情?听起来像是一个应该在网页设计方面解决的问题。

黑客: 我可以建议您在网络视图的顶部放置两个不透明的视图,然后以编程方式根据您的喜好设置透明度/高度吗?


0
投票

您可以调试应用程序并记录滚动 y-pos 来决定您希望用户滚动的所需区域,如果用户超出此区域将其返回 所以在这个例子中,从 0 到 135,我不需要显示标题,所以我阻止用户在低于 135 的 y-pos 中滚动 6600 之后,不想让用户看到内容,所以我做了同样的过程

// first scroll to hide the header
    webView.scrollTo(0 , 135);
// listen for the user scroll to prevent him from scrolling on a hidden area
    webView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
                @Override
                public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                    if(scrollY<135) webView.scrollTo(scrollX , 135);
                    if(scrollY>6600) webView.scrollTo(scrollX , 6600);
                }
            });

0
投票

我使用了 marginTop,如您在此处看到的那样,并将其设置为 -150dp,这样它将裁剪上面的网络视图 XML FILE MARGINTOP您将在设计中看到类似的内容 DESIGN MARGIN INDICATOR就像有一条看不见的图像线。应用程序重新加载后,您现在可能看不到裁剪区域,并且不允许在该特定区域上滚动。

© www.soinside.com 2019 - 2024. All rights reserved.