Wie deaktiviere die Tipp-Toast-Nachricht, die manchmal mit den Zoom-Steuerelementen in einem WebView erscheint?

Ich habe das nicht auf irgendwelchen anderen Geräten getestet, sondern auf einem 2.1-Gerät, in einem WebView mit den Zoom-Reglern eingeschaltet, eine Toast-Nachricht kommt manchmal auf, die so etwas sagt wie "Tipp: Doppelhahn zum Vergrößern und Verkleinern". Ich weiß nicht, woher es kommt, als nichts in meinem Code gefragt, damit es erscheint. Gibt es eine Möglichkeit, dies zu deaktivieren?

Ich weiß nicht, wie es zu reproduzieren, aber es scheint, öfter passieren, wenn die App frisch installiert ist.

  • Deaktivieren Sie Pinch Zoom in WebView?
  • Vergrößern Animation
  • Legen Sie die minimale Zoomstufe für MapView fest
  • So implementieren Sie OnZoomListener auf MapView
  • Android GridView Pinch Zoom
  • WebView loszuwerden doppelte Tap-Zoom.
  • Auto-Size-Zoom auf Google Maps in Java? (Abhängig von der Bildschirmauflösung)
  • Pinch Zoom ListView Android
  • 2 Solutions collect form web for “Wie deaktiviere die Tipp-Toast-Nachricht, die manchmal mit den Zoom-Steuerelementen in einem WebView erscheint?”

    Wie in der Antwort von wajiw angedeutet, basiert der Toast auf dem doppelten Tap Toast in WebSettings. Es gibt einen Workaround, der auf der Vorbeugung dieses Wertes basiert. WebSettings erhält seinen Wert für Double Tap Toast zählen aus SharedPreferences. Wenn Sie den Voreinstellungswert überschreiben, wird der Toast deaktiviert.

    Die Präferenzen basieren auf privaten Werten in WebSettings, also ist es nicht ideal. Wenn sich die Implementierung ändert, könnte das sehr gut funktionieren. So verwenden Sie auf eigene Gefahr.

    Hier sind die Werte, die WebSettings für die SharedPreferences verwendet. Du musst sie in deiner Klasse duplizieren.

    private static final String PREF_FILE = "WebViewSettings"; private static final String DOUBLE_TAP_TOAST_COUNT = "double_tap_toast_count"; 

    Dann müssen Sie die Werte ändern, bevor Sie das WebView verwenden

     SharedPreferences prefs = context.getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE); if (prefs.getInt(DOUBLE_TAP_TOAST_COUNT, 1) > 0) { prefs.edit().putInt(DOUBLE_TAP_TOAST_COUNT, 0).commit(); } 

    Check out WebSettings Quellcode für weitere Informationen.

    Von der Betrachtung der WebView.java Quelle kommt es von der startDrag Funktion:

     private void startDrag() { WebViewCore.reducePriority(); // to get better performance, pause updating the picture WebViewCore.pauseUpdatePicture(mWebViewCore); if (!mDragFromTextInput) { nativeHideCursor(); } WebSettings settings = getSettings(); if (settings.supportZoom() && settings.getBuiltInZoomControls() && !getZoomButtonsController().isVisible() && mMinZoomScale < mMaxZoomScale && (mHorizontalScrollBarMode != SCROLLBAR_ALWAYSOFF || mVerticalScrollBarMode != SCROLLBAR_ALWAYSOFF)) { mZoomButtonsController.setVisible(true); int count = settings.getDoubleTapToastCount(); if (mInZoomOverview && count > 0) { settings.setDoubleTapToastCount(--count); Toast.makeText(mContext, com.android.internal.R.string.double_tap_toast, Toast.LENGTH_LONG).show(); } } } 

    Die Einstellungen sind über getSettings () zugänglich. Von dort würde ich versuchen, setDoubleTapToastCount aufzurufen und so etwas wie 0 oder -1 für den Wert zu verwenden. Wenn das nicht funktioniert, kannst du kein Glück haben.

    Sehen Sie hier die volle Quelle von WebView.java

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.