我试图控制片段中的OnTouchListener(上下)。我实现了setOnTouchListener
方法,但是它不起作用。
我只想在发生向上触摸时显示“向上”吐司,或者在发生向下触摸时显示“向下”吐司。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.strada_chefs_1, container,
false);
rootView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (MotionEventCompat.getActionMasked(event)) {
case MotionEvent.ACTION_UP:
Toast.makeText(getActivity(), "Up", Toast.LENGTH_SHORT)
.show();
break;
case MotionEvent.ACTION_DOWN:
Toast.makeText(getActivity(), "down", Toast.LENGTH_SHORT)
.show();
break;
default:
break;
}
return false;
}
});
最佳答案
尝试在onTouch
回调中返回true。如果返回false,则意味着该事件应由其他人处理。 OnTouch事件由上下移动组成,如果OnTouchListener
在任何时候返回false,则其余事件将在其他位置处理,而不是由您的OnTouchListener
处理。您的代码收到ACTION_DOWN
,但是由于它返回false,因此该事件的其余部分将在其他地方处理。
关于android - Android setOnTouchListener无法分段运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24382976/