java - 带有 OnTouch 事件的 ScrollView

标签 java android

我有一个 ScrollView 和一个很长的文本在 TextView 上,我想根据用户操作拖到下一个/上一个文本:

在我的 xml 上:

<ScrollView
        android:id="@+id/scrollViewTest"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">            
    <TextView
            android:id="@+id/textViewTest"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="very long text" />    
</ScrollView>   

在 onCreate 上,我实现了 OnTouchListener 以便拖动到下一个文本。

ScrollView sv = (ScrollView) findViewById(R.id.scrollViewTest);         
sv.setOnTouchListener(new MyOnTouch()); 

OnTouchListener 定义如下:

public class MyOnTouch implements OnTouchListener {
   @Override
   public boolean onTouch(View v, MotionEvent event) {
       return pageFlip(v, event);           
   }

   public boolean pageFlip(View v, MotionEvent event) {
       switch (event.getAction()) {
       case MotionEvent.ACTION_DOWN:
           startX = event.getX();
           break;
           case MotionEvent.ACTION_UP:
           float currentX = event.getX();       
            if (startX > currentX + 150 ) {
                nextText(v);
            }
            if (startX  < currentX - 150) {                
                previousText(v);
            }
       default:
           break;
   }
   return true;
   }
}

问题是,当我实现它时,我可以到达下一个/上一个文本,但我无法上下滚动以查看底部的文本。

有什么建议吗?

最佳答案

在方法 pageFlip 中将 return true; 更改为 return false;

关于java - 带有 OnTouch 事件的 ScrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11089358/

相关文章:

java - 文件的多线程读写,无法停止操作,写入错误文件

Android Fragment找不到ID的 View ?

java - 文件未上传到服务器

java - 收集 HashMap<String, List<String>> java 8

java - 从 Web 服务解析 Sax

android - 如何创建具有服务器数据库连接的 Android 应用程序

android - 我们如何防止服务被操作系统杀死?

java - 我们可以使用 Java EE Servlet 作为后端并使用 Angular 作为前端吗?

Java - 如何从数据库中获取所有行数据

java - 如何获取hazelcast中跨节点分布式映射的内存成本