gpt4 book ai didi

android - 如何触发 Horizo​​ntalScrollView 的 onClickListener?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:22 24 4
gpt4 key购买 nike

这个问题解释了我想要的一切。

Horizo​​ntalScrollView 似乎是唯一不会触发 setOnClickListener() 的小部件。

注意:我不能使用 onTouch 事件,因为每次触摸都会触发 4-5 次。

我也不能在它的父 View 上使用onTouch,因为父 View 有许多功能不同的按钮。


以下描述不重要:

但是,这些是我搜索过的现有链接(没有帮助):

horizontalscrollview onclicklistener doesn't get called

How to implement on click listener for horizontalscrollview

Click event of HorizontalScrollView

Android click event of items in HorizontalScrollView not respond after scroll

这些是我发布的链接(没有一个得到完整的回答):

Insert views in HorizontalScrollView programatically

One of the ImageButton not clicking & make HorizontalScrollView clickable

我在这些链接中问了多个问题,其中 1 个是“Horizo​​ntalScrollView 的 onClickListener”。我的那部分问题从未得到回答。

因此是一个完全排他性的问题。

最佳答案

我想到了两种方法。

更简单(但不太理想)的一个:

    HorizontalScrollView scrollView = (HorizontalScrollView) findViewById(R.id.scrollView);

scrollView.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
// Do stuff
}
return false;
}
});

当您单击、拖动或您用手指进行的任何操作时,它只会被调用一次。然而,它也会对各种手势使用react,所以如果你只想检测点击/点击事件,你需要进一步调查“事件”对象并过滤掉你不需要的事件。这可能比您希望的要多,因此您最好使用 GestureDetector 来为您完成这项工作。

这导致方法 2:

    HorizontalScrollView scrollView = (HorizontalScrollView) findViewById(R.id.scrollView);

final GestureDetector detector = new GestureDetector(this, new OnGestureListener() {

@Override
public boolean onSingleTapUp(MotionEvent e) {
// Do stuff.
return false;
}

// Note that there are more methods which will appear here
// (which you probably don't need).
});


scrollView.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
detector.onTouchEvent(event);
return false;
}
});

关于android - 如何触发 Horizo​​ntalScrollView 的 onClickListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21828774/

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