有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java允许滚动EditText和滑动ViewPager

我有一个EditText(可垂直滚动)在一个ViewPager的一个片段中(可水平滑动)

默认情况下,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;
    }
});

如何同时允许浏览页面和滚动编辑文本


共 (1) 个答案

  1. # 1 楼答案

    你可以根据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;
           }
    });
    

    希望对你有帮助