1

Допустим, у меня есть ScrollView LinearLayout (вертикальный) с внутренним номером. Кроме того, LinearLayout содержит достаточно виджета, чтобы он прокручивался.NumberPicker внутри ScrollView

Ниже приведен фрагмент пример кода 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 doesn't scroll on Android 4.0.4

How disable ScrollView - Это один не будет делать эту работу, потому что оба ScrollView и NumberPicker вертикальные

Я действительно ценю любое хорошее решение или направление ... Заранее спасибо, Mark.

+0

ты решил его с тех пор? Сейчас я столкнулся с такой же точной проблемой – doplumi

ответ

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; 
     } 
    }); 
Смежные вопросы