滑动滚动条冲突问题如何解决,滑动滚动条冲突
投稿于 被查看 43107 次 评论:274
滑动滚动条冲突问题如何解决,滑动滚动条冲突
在项目开发过程中,我们有时候会碰到这样的情况:在ScrollView中嵌套TextView,TextView的高度固定的,当TextView要显示的文字过多时,显示不全,这时候我们会考虑直接让TextView自带滚动条来实现,即在xml文件中的TextView控件增加属性:
并在代码中设置:
textview.setMovementMethod(ScrollingMovementMethod.getInstance());
但是当我们触摸可以滚动的textview想滚动的时候,texview没有滚动,而是整个布局的scrollview开始滚动,那怎么解决呢?在textview的触摸监听事件中拦截一下就可以了,代码如下:
textview.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction()==MotionEvent.ACTION_DOWN){ //通知父控件不要干扰,即屏蔽父控件的该事件以及该事件之后的一切action v.getParent().requestDisallowInterceptTouchEvent(true); } if(event.getAction()==MotionEvent.ACTION_MOVE){ //通知父控件不要干扰,即屏蔽父控件的该事件以及该事件之后的一切action v.getParent().requestDisallowInterceptTouchEvent(true); } if(event.getAction()==MotionEvent.ACTION_UP){ v.getParent().requestDisallowInterceptTouchEvent(false); } return false; } });
到此,嵌套在ScrollView中的TextView就可以自由滚动了,耶~
用户评论