Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在两个片段之间共享onTouch MotionEvent?_Android_Android Fragments_Ontouchlistener - Fatal编程技术网

Android 如何在两个片段之间共享onTouch MotionEvent?

Android 如何在两个片段之间共享onTouch MotionEvent?,android,android-fragments,ontouchlistener,Android,Android Fragments,Ontouchlistener,我有两个碎片。First始终运行(第一个屏幕)。当我点击并按住它的TextView时,我添加了第二个片段(第二个屏幕)。然后我仍然拿着指针,在第二个片段(第三个屏幕)拥有的红色文本视图上拖动指针。当我输入红色TextView时,我想增加它的alpha值。然后,当我执行ACTION\u UPsecond fragment销毁时,单击第一个片段中的TextView(第四个屏幕) 我的问题是如何管理红色文本视图第二个片段中的onTouchListener? 在第二个片段中,我试着去听ifonTouch

我有两个碎片。First始终运行(第一个屏幕)。当我点击并按住它的
TextView
时,我添加了第二个片段(第二个屏幕)。然后我仍然拿着指针,在第二个片段(第三个屏幕)拥有的红色文本视图上拖动指针。当我输入红色
TextView
时,我想增加它的alpha值。然后,当我执行
ACTION\u UP
second fragment销毁时,单击第一个片段中的
TextView
(第四个屏幕)

我的问题是如何管理红色文本视图第二个片段中的onTouchListener?

在第二个片段中,我试着去听if
onTouchListener
,甚至是响应,但事实并非如此

//second fragment
...
deleteTextView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent event) {
            event = MotionEvent.obtainNoHistory(event);

            //here testing if onTouch works
            if(event.getAction()>=0) {
                Log.v("UWAGA ZOOM", Integer.toString(event.getAction()));
                return true;
            }
            if(event.getAction() == MotionEvent.ACTION_HOVER_ENTER){
                deleteArea.setAlpha(1.0f);
                return true;
            }
            if(event.getAction() == MotionEvent.ACTION_HOVER_EXIT){
                deleteArea.setAlpha(0.5f);
                return true;
            }
            return false;
        }
    });
但是第一个片段的听众反应

//first fragment
...
linearLayout2.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            //here testing if onTouch works
            if(event.getAction()>=0) {
                Log.v("UWAGA", Integer.toString(event.getAction()));
                return true;
            }

            if(event.getAction() == MotionEvent.ACTION_DOWN){
                Fragment dayEventZoomFragment = new DayEventZoomFragment();
                FragmentManager fragmentManager = getFragmentManager();
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.setCustomAnimations(android.R.animator.fade_in,
                        android.R.animator.fade_out);

                Bundle bundle = new Bundle();
                bundle.putString("event_title", dayEvent.getTitle());
                bundle.putInt("event_hour", dayEvent.getHour());
                dayEventZoomFragment.setArguments(bundle);

                fragmentTransaction.add(R.id.fragment_layout, dayEventZoomFragment, "dayEventZoomFragment").addToBackStack("fragmentDay")
                        .commit();
                return true;
            }

            if(event.getAction() == MotionEvent.ACTION_UP){
                getActivity().dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
                getActivity().dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));
                return true;
            }
            return false;
        }
    });
所以当我像第三个ss一样拖动指针时,我只得到LOG“UWAGA”,而没有得到LOG“UWAGA ZOOM”。 在开始第二个事件之前,当手指仍在屏幕上时,如何开始监听第二个片段中的事件