2017-01-20 13 views
1

コードにdatapickerとtimepickerがあります。 しかし、私は問題があります。 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のEV) {

// 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; 

}

関連する問題