我试图控制片段中的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/

10-10 08:50