gpt4 book ai didi

ListView 中的 Android WebView onclick 事件问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:16:23 27 4
gpt4 key购买 nike

我有一个 ListView,其中每一行都有两个并排的 Web View ,占据了整行。我在我的 ListActivity 中设置了 onListItemClick(),但是当我点击其中一行时它们不会被触发(除非我碰巧点击的地方在 webview 的边界之外——但这不太可能,用户最可能想点击 WebView 中的图像)。

我试过设置 setFocusable(false) 和 setFocusableInTouchMode(false),但这些都无济于事。

理想情况下,这将完全像 Facebook 的新闻源一样运行,您可以在其中点击某人的墙上帖子的个人资料图片,它就像您点击了整行一样(在 FB 的情况下是墙上帖子的文本)

最佳答案

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

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

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);
}
}

可以覆盖 sendClick 方法以执行您特定情况下所需的操作。用例:

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

关于ListView 中的 Android WebView onclick 事件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973228/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com