在解释之前,我不想在Scrollview内部Scrollview上使用TouchEvent。
我想在触摸scrollView时制作弹出窗口。但要使用onTouchEvent,是不是只能检测到ACTION_MOVE,UP,DOWN?
我使用了手势探测器。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_read);
ScrollView readScroll = (ScrollView)findViewById(R.id.readScrollView);
TextView textView = (TextView)findViewById(R.id.TextView);
String filePath = getIntent().getStringExtra("File_Path");
textView.setText(readFile(filePath));
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
Toast.makeText(ReadActivity.this, "onKeyUp", Toast.LENGTH_SHORT).show();
return false;
}
但它不起作用。 我认为它因scrollView而被禁用。
如何在scrollView上检测触摸事件?
答案 0 :(得分:2)
正如您在问题中已经提到的那样,onTouchEvent
确实有ACTION_UP
handle when touch up。
答案 1 :(得分:0)
所以你想观察滚动是向上还是向下移动。
首先结帐docs
实施:
scrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
}
});
如果您正在检查它是向上还是向下运动,只需比较 scrollX 和 oldScrollX ,水平滚动和 oldscrollY 强>