允许滚动EditText并滑动ViewPager

时间:2015-04-06 13:00:54

标签: java android android-edittext android-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?

1 个答案:

答案 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;
       }
});

希望它有所帮助...