允许滚动 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;
       }
});

希望对您有所帮助...