2012-03-02 6 views
4

나는 이미 시도했다 :scrollView를 비활성화하는 방법은 무엇입니까?

scrollView.setEnable(false); 

scrollView.setOnTouchListener(null); 

scrollView.requestDisallowInterceptTouchEvent(true); 

이 중에 그것을 할 다른 방법이 ... 내가 왜 이해할 수없는 일하지? XML에서

있는 ScrollView :

<ScrollView 
    android:id="@+id/mainPage_scroll" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:focusableInTouchMode="true" 
    android:layout_below="@+id/tabBar" > 

</ScrollView> 

답변

4

나중에 참조 I '는 ScrollView 내에서 그리기 가능 영역'이 사용 훨씬 간단 솔루션은 부모에게 requestDisallowInterceptTouchEvent을 사용하는 것입니다 및 체인까지하지 방해 터치 동작.

이 경우 부모가 ScrollView 내부 LinearLayout입니다뿐만 아니라 다른 구성 요소에 중첩 될 수 드로어 블보기에 예 :

@Override 
public boolean onTouchEvent(MotionEvent event) 
{ 
    if (event.getAction() == MotionEvent.ACTION_DOWN) 
    { 
     this.parent.requestDisallowInterceptTouchEvent(true); 
     // etc... 
    } 
    else if(event.getAction() == MotionEvent.ACTION_MOVE) 
    { 
     // etc... 
    } 
    else if (event.getAction() == MotionEvent.ACTION_UP) 
    { 
     this.parent.requestDisallowInterceptTouchEvent(false); 
     // etc... 
    } 
    return true; 
} 
+0

나는이 같은 의견에 사방을 찾고있었습니다. 감사합니다. –

3

가 스크롤 할 수있는 ScrollView를 중지하는 직접적인 방법은 없지만 유 다른 방법 처럼 그것을 수행 할 수 있습니다

scrollview.setOnTouchListener(new OnTouchListener() 
{ 

    @Override 
    public boolean onTouch(View v, MotionEvent event) 
    { 

    return !enable; 
    } 
}); 

을 당신이 그것을 스크롤 시작하고 false로 설정할 때 스크롤이 중지됩니다 true로 변수를 가능하게 설정할 때.

관련 문제