gpt4 book ai didi

android - 网页 View 缩放控件

转载 作者:太空狗 更新时间:2023-10-29 15:22:32 25 4
gpt4 key购买 nike

我有一个 WebView ,您可以导航到其中的嵌入链接。该链接指向一个图像,我在导航到该图像时启用缩放,并在用户返回时禁用它。这工作正常,除了缩放控件。出于某种原因,当我回来时它们会逗留一会儿,这允许用户弄乱不打算缩放的 webview 的缩放级别。一旦它们消失,它们就不会回来,我只需要一些方法来立即禁用它们,而不是等待它们消失。有答案吗?

我禁用这样的缩放:

contentView.getSettings().setJavaScriptEnabled(false);
contentView.getSettings().setSupportZoom(false);
contentView.getSettings().setBuiltInZoomControls(false);

编辑:

当控件仍在显示时,当我尝试返回到上一个 Activity 时,这也会导致崩溃。如果它有助于解决任何一个问题,这里是它的故障转储

FATAL EXCEPTION: main
java.lang.IllegalArgumentException: Receiver not registered: android.widget.ZoomButtonsController$1@47979810
at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:859)
at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:869)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331)
at android.widget.ZoomButtonsController.setVisible(ZoomButtonsController.java:404)
at android.widget.ZoomButtonsController$2.handleMessage(ZoomButtonsController.java:178)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5073)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)

编辑2:

这是一些代码,不确定这有多大帮助

在 Activity 的onCreate函数中

contentView = (WebView) findViewById(R.id.message_content);
contentView.setWebViewClient(new WebViewClient()
{
@Override
public void onPageFinished(WebView view, String url )
{
if ( !url.startsWith("http") )
{
view.clearHistory();
}
else
{
contentView.getSettings().setJavaScriptEnabled(true);
contentView.getSettings().setSupportZoom(true);
contentView.getSettings().setBuiltInZoomControls(true);
topButton.setText("Go back");
topButton.setOnClickListener(backClick);
}
}

@Override
public boolean shouldOverrideUrlLoading( WebView view, String url )
{
view.loadUrl(url);
return true;
}
});

这就是我从可缩放页面返回的方式

@Override
public boolean onKeyDown( int keyCode, KeyEvent event )
{
if ( keyCode == KeyEvent.KEYCODE_BACK )
{
if ( contentView.canGoBack() )
{
contentView.getSettings().setJavaScriptEnabled(false);
contentView.getSettings().setSupportZoom(false);
contentView.getSettings().setBuiltInZoomControls(false);
topButton.setText("Add a comment");
topButton.setOnClickListener(postClick);
contentView.goBack();
return true;
}
}
return super.onKeyDown(keyCode, event);
}

最佳答案

您始终可以禁用内置缩放控件并实现自己的缩放控件。

关于android - 网页 View 缩放控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6206803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com