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.

  • Schließung mehrere android Aktivitäten gleichzeitig
  • Schnellere GPS-Fix in Android
  • Android: Wie kann ich ein bestimmtes Element in einer Checked ListView überprüfen?
  • Bestell-ID von Android-Abonnements
  • Kalenderereignis lokal auf Telefon gespeichert, kann aber nicht mit Google Kalender synchronisieren
  • Android 4.2.1 falscher Charakter Kerning (Abstand)
  • Wie bekomme ich Telefonkontakte in Android
  • ActionBarSherlock Liste Navigation mit Symbol und Titel
  • Was ist der Unterschied zwischen einem Animator und einer Animation?
  • Android: EditText Hinweis in Einzelzeile
  • Android: aktualisieren progressbar für Datei hochladen
  • Fehler beim Importieren eines neuen Gradle-Projekts: Das Modell des Typs 'IdeaProject' konnte nicht abgerufen werden
  • 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.