我在 ViewPager
中有一个 ScrollView
。我需要能够水平和垂直滚动。为了实现这一点,必须在触摸我的 ViewPager
时禁用垂直滚动( v.getParent().requestDisallowInterceptTouchEvent(true);
),以便它可以水平滚动。
但同时我需要能够单击 viewPager 以全屏模式打开它。
问题是 onTouch 在 onClick 之前被调用,而我的 OnClick 从未被调用过。
如何在触摸时同时实现 onClick?
viewPager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
System.out.println("TOUCHED ");
if(event.getAction() == MotionEvent.???){
//open fullscreen activity
}
v.getParent().requestDisallowInterceptTouchEvent(true); //This cannot be removed
return false;
}
});
viewPager.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("CLICKED ");
Intent fullPhotoIntent = new Intent(context, FullPhotoActivity.class);
fullPhotoIntent.putStringArrayListExtra("imageUrls", imageUrls);
startActivity(fullPhotoIntent);
}
});
原文由 124697 发布,翻译遵循 CC BY-SA 4.0 许可协议
Masoud Dadashi 的回答帮助我弄明白了。
这是它最终的样子。