1

これはおそらく奇妙に見えるでしょうが、ネストされた2つのスクロールビューを使用したいと考えています。ある時点で、外側のスクロールビューはスクロールを停止し、すべてのスクロール動作を内側のスクロールビューに渡す必要があります。

私のレイアウトはこんな感じです。

<CustomOuterScrollView>
   <LinearLayout/>
   <CustomInnerScrollView/>
</CustomOuterScrollView>

onInterceptTouchEvent をオーバーライドする 2 つのクラスを作成しました。CustomOuterScrollView の場合、これは次のとおりです。

    @Override
public boolean onInterceptTouchEvent( MotionEvent ev )
{
    if ( stopScrolling )
    {
        return false;
    } else
    {
        return super.onInterceptTouchEvent( ev );
    }
}

CustomInnerScrollView の場合、これは次のようになります。

    @Override
public boolean onInterceptTouchEvent( MotionEvent ev )
{
    return true;
}

さて、私が抱えている最大の問題は次のとおりです。stopScrolling 変数が true に設定された時点以降、outerscrollview はイベントを消費しなくなり、CustomInnerScrollView に渡します。私がデバッグすると、実際には onInterceptTouchEvent に入ります。唯一の問題は、InnerScrollView がスクロールしないことです。アイデアを持っている人はいますか?ネストされたスクロールビューを使用して、これが通常行われないことはわかっています。ただし、設計上の問題により、他のことを行うことはできません。

4

0 に答える 0