0

コンテンツにさまざまな変更を加えて、タッチすると表示し、指が上に戻ると元に戻したいコンポーネントがあります。以下は一般的に機能しますが、持ち上げる前にユーザーの指がコンポーネント自体から外れた場合、ACTION_UPは起動しないため、「アップ」状態に戻ることはありません。

public class MyComponent extends SomeLayout {
    // ... stuff
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        final int action = event.getAction() & MotionEvent.ACTION_MASK;
        switch (action) {
        case MotionEvent.ACTION_DOWN :
            // do something...
            break;          
        case MotionEvent.ACTION_UP :
            // do something else...
            break;      
        }   
        return super.onTouchEvent(event);
    }
}

このViewGroupには複雑なコンテンツが含まれており、StateDrawablesに適したものではありません。

助言がありますか?

TYIA

4

1 に答える 1

0

将来の検索者にとって、答えはACTION_CANCEL...です。

public class MyComponent extends SomeLayout {
    // ... stuff
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        final int action = event.getAction() & MotionEvent.ACTION_MASK;
        switch (action) {
        case MotionEvent.ACTION_DOWN :
            // do something...
            break;          
        case MotionEvent.ACTION_UP :
        case MotionEvent.ACTION_CANCEL :
            // do something else...
            break;      
        }   
        return super.onTouchEvent(event);
    }
}
于 2012-05-04T05:01:22.803 に答える