允许滚动 EditText 和滑动 ViewPager
Allow scrolling EditText and swiping ViewPager
我在 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?
您可以按照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;
}
});
希望对您有所帮助...
我在 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?
您可以按照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;
}
});
希望对您有所帮助...