相关疑难解决方法(0)

android按钮调用了setOnTouchListener,但没有覆盖performClick

当我尝试添加onTouchListner()一个按钮获取我

Button上调用了setOnTouchListener,但没有覆盖performClick

警告.谁知道怎么修它.谢谢..

1

btnleftclick.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

错误:

自定义视图已调用setOnTouchListener但不覆盖performClick如果覆盖onTouchEvent或使用OnTouchListener的View也未实现performClick并在检测到单击时调用它,则View可能无法正确处理辅助功能操作.理想情况下,处理点击操作的逻辑应放在View#performClick中,因为某些辅助功能服务会在发生单击操作时调用performClick.

android ontouchlistener

82
推荐指数
3
解决办法
5万
查看次数

自定义视图...覆盖onTouchEvent但不执行performClick

我在开发的自定义Android视图中收到此警告(来自问题标题).

为什么我会收到警告?它背后的逻辑是什么,即为什么在
覆盖performClick时也会覆盖它onTouchEvent

java android android-custom-view android-view

47
推荐指数
2
解决办法
3万
查看次数

Android触摸事件是如何发布的?

我不是在问如何处理触摸事件,而是在幕后发生了什么?如果有几个嵌套的小部件,他们看到的事件是什么顺序?开发人员是否可以控制它?理想情况下,我想要一个关于这个主题的文件.

events android

32
推荐指数
3
解决办法
1万
查看次数

onInterceptTouchEvent只获取ACTION_DOWN

为什么ViewGroup唯一得到ACTION_DOWNonInterceptTouchEvent?根据文档,只要返回false,它就应该接收所有事件类型. http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent%28android.view.MotionEvent%29 第3点.

示例代码:

public class MainActivity extends Activity {

    private static final String TAG = MainActivity.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new Container(this));
    }

    private class Container extends LinearLayout {

        public Container(Context context) {
            super(context);
            setBackgroundColor(0xFF0000FF);
        }

        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            Log.i(TAG, "onInterceptTouchEvent");
            int action = ev.getActionMasked();
            switch (action) {
            case MotionEvent.ACTION_DOWN:
                Log.i(TAG, "onInterceptTouchEvent.ACTION_DOWN");
                break;
            case MotionEvent.ACTION_MOVE:
                Log.i(TAG, "onInterceptTouchEvent.ACTION_MOVE");
                break;
            case MotionEvent.ACTION_CANCEL:
            case MotionEvent.ACTION_UP:
                Log.i(TAG, "onInterceptTouchEvent.ACTION_UP");
                break;
            }
            return …
Run Code Online (Sandbox Code Playgroud)

java android

26
推荐指数
2
解决办法
2万
查看次数