问题描述
我在ViewPager(水平可滑动)的一个片段中有一个EditText(可垂直滚动).
I have an EditText (vertically scrollable) inside one of the fragments in a ViewPager (horizontally swipable).
默认情况下,EditText内部的触摸事件可以滑动ViewPager,但不能滚动EditText.通过使用下面的代码(我不太了解),EditText中的触摸事件可以滚动EditText,但不能滑动ViewPager:
By default, touch events inside the EditText can swipe the ViewPager but not scroll the EditText. By using the code below (which I don't really understand), touch events inside the EditText can scroll the EditText but not swipe the 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?
How can I simultaneously allow swiping of the ViewPager and scrolling of the EditText?
推荐答案
您可以根据此处.
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,您必须添加此代码段.
For the EditText, you will have to add this snippet.
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;
}
});
希望有帮助...
这篇关于允许滚动EditText和滑动ViewPager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!