2011-06-01 163 views
3

我有一個webview,您可以導航到其中的嵌入式鏈接。該鏈接指向圖像,並且在導航到該圖像時啓用縮放,並在用戶返回時禁用它。這工作正常,除了縮放控件。出於某種原因,當我回來時,他們會留下一點點時間,並且這會讓用戶弄亂一個不打算縮放的webview的縮放級別。一旦他們消失,他們不會回來,我只需要一些方法立即禁用他們,而不是等待他們褪色。任何答案?webview縮放控件

我禁用變焦這樣的:

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

編輯:

這也導致飛機墜毀時,我試圖回到以前的活動時控件仍顯示。下面是它崩潰轉儲如果它有助於解決任何一個問題

FATAL EXCEPTION: main 
java.lang.IllegalArgumentException: Receiver not registered: [email protected] 
    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) 

EDIT2:

繼承人一些代碼,不知道有多少這有助於

在活動的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); 
} 
+0

您好Dan發佈您的代碼。 – Jorgesys 2011-06-01 21:31:19

+0

我添加了一些代碼,不知道它是你在找什麼或者它是否有幫助... – 2011-06-02 13:26:00

回答

0

您可以隨時禁用內置縮放控件並實現自己的縮放控件。