Android WebView inside ListView onclick event issues

前端 未结 6 1200
太阳男子
太阳男子 2020-12-25 09:03

I have a ListView where each row has two webviews side by side, taking up the entire row. I\'ve set up onListItemClick() in my ListActivity, but they are not fired when I ta

6条回答
  •  再見小時候
    2020-12-25 09:24

    Figured it out, posting my solution in case someone else wants to do something similar:

    I had to use an OnTouchListener, since OnClick and OnFocus weren't working. I extended a class that is reuseable:

    private class WebViewClickListener implements View.OnTouchListener {
        private int position;
        private ViewGroup vg;
        private WebView wv;
    
        public WebViewClickListener(WebView wv, ViewGroup vg, int position) {
            this.vg = vg;
            this.position = position;
            this.wv = wv;
        }
    
        public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();
    
            switch (action) {
                case MotionEvent.ACTION_CANCEL:
                    return true;
                case MotionEvent.ACTION_UP:
                    sendClick();
                    return true;
            }
    
            return false;
        }
    
        public void sendClick() {
            ListView lv = (ListView) vg;
            lv.performItemClick(wv, position, 0);
        }
    }
    

    The sendClick method could be overridden to do what's needed in your specific case. Use case:

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

提交回复
热议问题