Android 如何在两个片段之间共享onTouch MotionEvent?
我有两个碎片。First始终运行(第一个屏幕)。当我点击并按住它的Android 如何在两个片段之间共享onTouch MotionEvent?,android,android-fragments,ontouchlistener,Android,Android Fragments,Ontouchlistener,我有两个碎片。First始终运行(第一个屏幕)。当我点击并按住它的TextView时,我添加了第二个片段(第二个屏幕)。然后我仍然拿着指针,在第二个片段(第三个屏幕)拥有的红色文本视图上拖动指针。当我输入红色TextView时,我想增加它的alpha值。然后,当我执行ACTION\u UPsecond fragment销毁时,单击第一个片段中的TextView(第四个屏幕) 我的问题是如何管理红色文本视图第二个片段中的onTouchListener? 在第二个片段中,我试着去听ifonTouch
TextView
时,我添加了第二个片段(第二个屏幕)。然后我仍然拿着指针,在第二个片段(第三个屏幕)拥有的红色文本视图上拖动指针。当我输入红色TextView
时,我想增加它的alpha值。然后,当我执行ACTION\u UP
second fragment销毁时,单击第一个片段中的TextView
(第四个屏幕)
我的问题是如何管理红色文本视图第二个片段中的onTouchListener?
在第二个片段中,我试着去听ifonTouchListener
,甚至是响应,但事实并非如此
//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”。
在开始第二个事件之前,当手指仍在屏幕上时,如何开始监听第二个片段中的事件