2013-01-16 30 views
7

Hy vọng rằng có một giải pháp ở đây, tôi có một XML TimePicker và ScrollView trong tệp main.xml của mình và với việc thiết lập TimePicker không cuộn. Nếu tôi loại bỏ các ScrollView Timepicker sẽ di chuyển tốt nhưng rõ ràng là tôi cần cả hai.ScrollView chiến đấu với cuộn TimePicker, Timepicker không cuộn theo kết quả

Dường như cả hai đều chiến đấu để có được các sự kiện liên lạc nhưng nó gây ra sự cố.

Đây là mã của tôi:

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:background="@color/backgroundmain"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <!-- Action Title --> 
     <ImageView /> 

     <TextView /> 

     <!-- Description --> 
     <TextView /> 

     <!-- Have to Button --> 
     <TextView /> 

     <RelativeLayout 
      android:id="@+id/TimePickerSection" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_marginTop="5dp" 
      android:layout_centerHorizontal="true" 
      android:layout_below="@id/"> 

      <TimePicker 
       android:id="@+id/TimePick" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:layout_centerVertical="true" 
       android:layout_below="@id/HaveToText"/> 

      <Button 
       android:id="@+id/OkButton" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="@string/OkText" 
       android:layout_below="@id/HaveToText" 
       android:textSize="20sp" 
       android:onClick="TimePickButton" 
       android:layout_centerVertical="true" 
       android:layout_toRightOf="@id/TimePick"/> 

     </RelativeLayout> 

    <!-- OR --> 
    <TextView /> 

    <!-- buttons --> 
    <TextView /> 

    <Button /> 

    </RelativeLayout> 

</ScrollView> 

Tôi đã gỡ bỏ mã không liên quan, nhưng vẫn giữ những nét chỉ để chỉ cho bạn cách bố trí được sắp xếp.

Có bản sửa lỗi trong XML không? Tôi đã thử những thứ như android:fillViewPort="" nhưng điều đó đã không làm gì cả. TimePicker của tôi không phải là một phần của một Dialog hoặc bất cứ điều gì và hy vọng tôi có thể giữ nó theo cách đó.

Trả lời

12

Tìm thấy các giải pháp, tạo ra một lớp tùy chỉnh TimePicker và sau đó gọi này để ghi đè các sự kiện liên lạc:

@Override 
public boolean 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; 
} 
+0

này lưu ngày của tôi! –

Các vấn đề liên quan