在手指按下时,在片段中触发ACTION_MOVE

时间:2016-04-18 08:57:22

标签: android android-fragments ontouch

设置

在片段A中我有一个带有onTouchListener的Button。如果我触摸按钮,片段A将被片段B替换。

片段B在其根视图上有一个onTouchListener,我想立即捕获ACTION_MOVE。

我想要实现的目标 我希望能够触摸按钮,看到片段B出现并立即采取行动。

问题

在我抬起手指再次触摸之前,没有打开onTouches。

我尝试了什么

private void dispatchTouch(FrameLayout layout_for_dragging) {
        // Obtain MotionEvent object
        long downTime = SystemClock.uptimeMillis();
        long eventTime = SystemClock.uptimeMillis() + 100;
        float x = 0.0f;
        float y = 0.0f;
        // List of meta states found here:     developer.android.com/reference/android/view/KeyEvent.html#getMetaState()
        int metaState = 0;
        MotionEvent motionEvent = MotionEvent.obtain(
                downTime,
                eventTime,
                MotionEvent.ACTION_DOWN,
                x,
                y,
                metaState
        );

        // Dispatch touch event to view
        layout_for_dragging.dispatchTouchEvent(motionEvent);
    }

在我将onTouchListener设置为根视图后在onCreateView中调用它。

我想强制举办一个活动,希望它能够获得我的移动事件,但它只会调用一次ACTION_DOWN。

1 个答案:

答案 0 :(得分:0)

处理片段B向右移动,可以使用onPageScrolled覆盖方法 .......... 如果我有你的问题

 @Override
public void onPageSelected(int arg0) {
    if(lastPage>arg0)
      {//User Move to left}
    else(lastPage<arg0) 
     {//User Move to right}
      lastPage=arg0
}

OR 


 @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

                    if (thresholdOffset > positionOffset) {
                        Log.i(C.TAG, "going left");
                    } else {
                        Log.i(C.TAG, "going right");
                    }


            }