Android WebView里面的ListView onclick事件问题

前端之家收集整理的这篇文章主要介绍了Android WebView里面的ListView onclick事件问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个ListView,每行有两个Webview并排,占据了整个行.我在ListActivity中设置了onListItemClick(),但是当我点击其中一行时,它们不会被触发(除非我碰巧点击的地方在webview的边框之外 – 但这不太可能是行为,用户最多可能想要点击webview中的图像).

我已经尝试设置setFocusable(false)和setFocusableInTouchMode(false),但这些没有帮助.

理想情况下,这将像Facebook的新闻源一样运行,您可以在其中点击某人的墙上信息的个人资料图片,并且其效果好像您已经点击了整个行(在FB中为墙上的文本的文本)

解决方法

想出来,发布我的解决方案,以防其他人想要做类似的事情:

我不得不使用OnTouchListener,因为OnClick和OnFocus不工作.我扩展了一个可重用的类:

  1. private class WebViewClickListener implements View.OnTouchListener {
  2. private int position;
  3. private ViewGroup vg;
  4. private WebView wv;
  5.  
  6. public WebViewClickListener(WebView wv,ViewGroup vg,int position) {
  7. this.vg = vg;
  8. this.position = position;
  9. this.wv = wv;
  10. }
  11.  
  12. public boolean onTouch(View v,MotionEvent event) {
  13. int action = event.getAction();
  14.  
  15. switch (action) {
  16. case MotionEvent.ACTION_CANCEL:
  17. return true;
  18. case MotionEvent.ACTION_UP:
  19. sendClick();
  20. return true;
  21. }
  22.  
  23. return false;
  24. }
  25.  
  26. public void sendClick() {
  27. ListView lv = (ListView) vg;
  28. lv.performItemClick(wv,position,0);
  29. }
  30. }

可以覆盖sendClick方法,以便在特定情况下执行所需的操作.用例:

  1. WebView image = (WebView) findViewById(R.id.myImage);
  2. image.setOnTouchListener(new WebViewClickListener(image,parent,position));

猜你在找的Android相关文章