1

NumberPicker を内部に持つ LinearLayout (vertical) の ScrollView があるとします。さらに、LinearLayout には十分な数のウィジェットが含まれているため、スクロールできます。

以下はサンプルの XML コード フラグメントです。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <!-- Some widgets here so it scrolls -->

    <NumberPicker
                android:id="@+id/npSec"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

</LinearLayout>

Android 4.1.2 (Galaxy S3) ではうまく動作します... レイアウトをスクロールし、NumberPicker を一度スクロールします - NumberPicker だけがスクロールします。

一方、Android 4.0.x では、レイアウトは適切にスクロールしますが、NumberPicker をスクロールしようとすると、半分の値をスクロールして値の間で停止するなどの厄介な処理が行われます。そこから - LinearLayout のみがスクロールされ、NumberPicker が動かなくなります。

この男はまったく同じ質問をしましたが、答えがありませんでした: NumberPicker on ScrollView は Android 4.0.4 でスクロールしません

ScrollView を無効にする方法- ScrollView と NumberPicker の両方が垂直であるため、これは機能しません。

良い解決策や方向性があれば、本当に感謝します... よろしくお願いします、マーク。

4

1 に答える 1

2

これは古い質問だと思いますが、それでも...

これは私のために働く:

numberPicker.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(final View v, final MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_MOVE && v.getParent() != null) {
                v.getParent().requestDisallowInterceptTouchEvent(true);
            }
            if (event.getAction() == MotionEvent.ACTION_UP) {
                v.performClick();
            }

            v.onTouchEvent(event);
            return true;
        }
    });
于 2015-02-18T14:00:48.663 に答える