我在ViewPager中的一个片段中有一个EditText(可垂直滚动)(可水平移动)。
默认情况下,EditText内的触摸事件可以滑动ViewPager,但不能滚动EditText。通过使用下面的代码(我不太了解),触摸EditText内部的事件可以滚动EditText,但不能滑动ViewPager:
editText.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
v.getParent().requestDisallowInterceptTouchEvent(! ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP));
return false;
}
});
如何同时允许滑动ViewPager并滚动EditText?
答案 0 :(得分:2)
您可以根据here给出的解决方案处理此问题。
pager.setOnTouchListener(new View.OnTouchListener()
{
public boolean onTouch(View p_v, MotionEvent p_event)
{
editText.getParent().requestDisallowInterceptTouchEvent(false);
// We will have to follow above for all scrollable contents
return false;
}
});
对于EditText,您必须添加此代码段。
editText.setOnTouchListener(new View.OnTouchListener()
{
public boolean onTouch(View p_v, MotionEvent p_event)
{
// this will disallow the touch request for parent scroll on touch of child view
p_v.getParent().requestDisallowInterceptTouchEvent(true);
return false;
}
});
希望它有所帮助...