2017-01-20 5 views
1

В моем коде есть datapicker и timepicker. Но у меня есть проблема. ScrollView не прокручивает datapicker и timepicker. Из-за этого я не могу поместить число в календарь.Datepicker не прокручивается в scrollview

Screen

Вот мой XML-код:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

<ScrollView 
     android:id="@+id/calendar_dialog_scroll_view" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:scrollbars="vertical" > 

    <LinearLayout 
     android:id="@+id/date_time_dialoglinear_layout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:orientation="vertical" > 

     <TimePicker 
      android:id="@+id/task_time_picker" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:layout_toLeftOf="@+id/task_date_picker" /> 

     <DatePicker 
      android:id="@+id/task_date_picker" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center" 
      android:layout_height="136dp" 
      /> 

     <TextView 
      android:id="@+id/comment_to_transfer_lable" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginTop="5dp" 
      android:text="Change reason" 
      android:textSize="16sp" /> 

     <EditText 
      android:id="@+id/comment_to_transfer" 
      android:layout_width="244dp" 
      android:layout_height="104dp" 
      android:descendantFocusability="beforeDescendants" 
      android:layout_gravity="center_horizontal" 
      android:layout_marginTop="5dp" 
      android:inputType="textMultiLine" 
      android:maxLines="4" > 

      <requestFocus /> 
     </EditText> 
    </LinearLayout> 

    </ScrollView> 


</LinearLayout> 

Как я могу решить эту проблему?

ответ

1

создать пользовательский класс timepicker и вызывать этот метод переопределения:

@Override

общественного логический onInterceptTouchEvent (MotionEvent эв) {

// Stop ScrollView from getting involved once you interact with the View 
if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) { 
    ViewParent p = getParent(); 
    if (p != null){ 
     p.requestDisallowInterceptTouchEvent(true); 
} 
return false; 

}

Смежные вопросы