1

こんにちは、私はカスタム ScrollView 内に GridView を持っています

これが私が使用しているコードです public class CustomScrollView extends ScrollView {

    public CustomScrollView(Context context) {
        super(context);
    }

    public CustomScrollView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }

    public CustomScrollView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }

   @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        final int action = ev.getAction();
        switch (action)
        {
            case MotionEvent.ACTION_DOWN:
                    Log.i("VerticalScrollview", "onInterceptTouchEvent: DOWN super false" );
                    super.onTouchEvent(ev);

                    break;

            case MotionEvent.ACTION_MOVE:
                    return false; // redirect MotionEvents to ourself

            case MotionEvent.ACTION_CANCEL:
                    Log.i("VerticalScrollview", "onInterceptTouchEvent: CANCEL super false" );
                    super.onTouchEvent(ev);
                    break;

            case MotionEvent.ACTION_UP:
                    Log.i("VerticalScrollview", "onInterceptTouchEvent: UP super false" );
                    return false;

            default: Log.i("VerticalScrollview", "onInterceptTouchEvent: " + action ); break;
        }

        return false;
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        super.onTouchEvent(ev);
        Log.i("VerticalScrollview", "onTouchEvent. action: " + ev.getAction() );
         return true;
    }
    }

そしてグリッドビューのために、私はこのような touchListener を追加しています

    gridview.setOnTouchListener(new GridView.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            scroll.onTouchEvent(event);
            return false;
        }
    });

scroll は、上記で指定した CustomScrollView への参照です

    CustomScrollView scroll=(CustomScrollView)findViewById(R.id.page);

私が使用しているグリッド ビューは、カレンダーを表示することです。やりたいことは、グリッドビューに触れるたびに、イベントを CustomScrollView に転送して、CustomScrollView にスクロールできるようにすることです。

それは機能していますが、問題は、グリッドビューの上または下の位置からスクロールしようとすると、GridView からスクロールしようとすると画面がちらつくことです。

私は何かが欠けていますか?1週間以来、それに取り組んでいる深刻なトラブルで私を助けてください

4

0 に答える 0