ScrollView中的多个Scrollable TextView

Igo*_* K. 2 android scrollview textview

我有一个ScrollView包含LinearLayout各种元素的复合体,其中有几个TextView定义了maxHeight ,里面有一个长文本.我需要在内部TextView触摸和拖动时滚动文本,以及在ScrollView它们之外触摸和拖动时的正常滚动.

是否有一种适当而优雅的方式来做到这一点 - 如果可能的话 - 或者我是否必须弄脏并开始覆盖所onTouchEvent涉及的所有元素的处理程序?

UPD 1:从这一点来看,没有优雅的解决方案,并且必须重新考虑UI以仅包括一层可滚动元素.

dmo*_*mon 5

所以它并不漂亮,但你可以从TextView扩展并阻止滚动视图滚动.除非你的文本视图足够大,否则它不是很好.使用此解决方案后,我们发现最好是有一个"显示更多"标签,用户可以点击该标签来显示完整的内容.无论如何,从TextView扩展并覆盖onTouchEvent方法:

  public boolean onTouchEvent(MotionEvent ev) {
    if (ev.getAction() == MotionEvent.ACTION_DOWN) {
      this.getParent().requestDisallowInterceptTouchEvent(true);
    }
    if (ev.getAction() == MotionEvent.ACTION_UP) {
      this.getParent().requestDisallowInterceptTouchEvent(false);
    }

    return super.onTouchEvent(ev);
  }
Run Code Online (Sandbox Code Playgroud)