实现ScrollView的嵌套

今天忽然需要写两个ScrollView嵌套,如:

<ScrollView>
    ……
    <ScrollView>
    ……
    </ScrollView>
    ……
</ScrollView>

但是这样会用问题,只有最外层的ScrollView有效。

有研究了一下,发现了下面这种解决方法:

ScrollView sv01 = (ScrollView) findViewById(R.id.scroll_01); 
ScrollView sv02 = (ScrollView) findViewById(R.id.scroll_02); 
sv02.setOnTouchListener(new OnTouchListener() { 
        @Override 
        public boolean onTouch(View v, MotionEvent event) { 
            if (event.getAction() == MotionEvent.ACTION_UP) 
                sv01.requestDisallowInterceptTouchEvent(false); 
        else  
                sv01.requestDisallowInterceptTouchEvent(true); 
        return false; 
        } 
    }); 

这样重写onTouch()事件,在事件里通过requestDisallowInterceptTouchEvent(boolean)方法来设置父类的不可用,true表示父类的不可用。这样就可以实现两个ScrollView分别滑动。

并且这样也适用于:ScrollView里面嵌套ViewPage等控件。

也适用于ScrollView里面嵌套多个滑动的控件,具体实现基本一致,可以自己研究一下。

猜你喜欢

转载自xindrace.iteye.com/blog/1754826