2012-03-02 73 views
4

我已經嘗試過:如何禁用scrollView?

scrollView.setEnable(false); 

scrollView.setOnTouchListener(null); 

scrollView.requestDisallowInterceptTouchEvent(true); 

但這些都不工作......我不明白爲什麼,有沒有其他的辦法做到這一點?

滾動視圖中的xml:

<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

以供將來參考一個更簡單的解決方案,我是一家ScrollView內繪製區域「使用的是使用requestDisallowInterceptTouchEvent告訴父母和環比上漲不干擾觸摸動作。

例如,在繪製視圖,其中在這種情況下,父親是ScrollViewLinearLayout但也可以嵌套在其他組件:

@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

我一直在尋找這樣的評論,謝謝。 – 2016-09-05 14:53:12

3

沒有直接的辦法阻止滾動視圖滾動,但ü當您設置使變量設置爲true,將開始滾動,當你將它設置爲false時停止滾動

scrollview.setOnTouchListener(new OnTouchListener() 
{ 

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

    return !enable; 
    } 
}); 

:可以做其他的方式 像。

相關問題