安卓——問題:控件(view)的OnTouch事件只能獲取到ACTION_DOWN事件,UP、MOVE等事件都無法獲取到

通常我們在處理控件(view)touch事件的時候,會發生獲取不到ACTION_DOWN事件的情況。

例如,運行以下代碼後,在屏幕上無論如何點擊、長按、滑動這個控件(view),logcat上只能看到  ACTION_DOWN  的輸出

view.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        Log.e("","ACTION_DOWN");
                        break;
                    case MotionEvent.ACTION_MOVE:
                        Log.e("","ACTION_MOVE");
                        break;
                    case MotionEvent.ACTION_UP:
                        Log.e("","ACTION_UP");
                        break;
                }
                return false;
            }
        });

解決辦法:

在目標控件(view)的佈局中,添加屬性:android:clickable="true"

<View  
       android:id="@+id/view"
       android:layout_width="match_parent"  
       android:layout_height="match_parent"  
       android:clickable="true" /> 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章