欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > 内容正文

滑动滚动条冲突问题如何解决,滑动滚动条冲突

来源: 开发者 投稿于  被查看 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就可以自由滚动了,耶~

相关频道:

用户评论