2016-11-16 10 views
0

Я пытаюсь отключить сенсорные события на WebView, это то, что я сделалсобытия прикосновения не отключены андроид WebView

webview.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     Log.info("webview", "onTouch is called"); 
     return true; 
    } 
}); 

Я вижу сообщения о сенсорными журнала событий, так onTouch() определенно всегда возвращается правда. Однако события касания все еще распространяются на веб-представление (например, я все еще могу прокручивать и взаимодействовать с кнопками/ссылками на странице html в webview). Мне что-то не хватает? Как я могу отладить/исправить это?

Спасибо!

+0

Попробуйте добавить 'Android: кликабельным = "ложь"' в ваш XML, который может также помочь. – San

+0

Я попытался добавить webview.setClickable (false) вместе с приведенным выше кодом, но он не сработал. Я не включил его в макет, так как я просто хочу временно отключить сенсорные события. – hixhix

+0

Попробуйте 'WebView.setFocusable (false);', он должен сделать трюк –

ответ

0

я не знаю, Что там происходит, но следующие должны работать

XML

<WebView 
    android:id="@+id/web_view" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"/> 

JAVA

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     final WebView webView = new WebView(this); 
     setContentView(webView); 

     webView.setWebViewClient(new HelloWebViewClient()); 

     webView.loadUrl("http://www.google.com"); 

     webView.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       return true; 
      } 
     }); 
    } 

    public class HelloWebViewClient extends WebViewClient { 
     // Catch additional url loading 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { 
      return true; 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^