我有一个相对布局,并编码了 onTouchListener 以突出显示背景,如下所示:

    relative3.setOnTouchListener(new OnTouchListener()
    {
        @Override
        public boolean onTouch(View arg0, MotionEvent event)
        {
            if(event.getAction()==MotionEvent.ACTION_DOWN )
            {
                relative3.setBackgroundColor(getResources().getColor(R.color.tran_grey));
            }

            if((event.getAction()==MotionEvent.ACTION_UP || event.getAction()==MotionEvent.ACTION_CANCEL))
            {
                relative3.setBackgroundColor(getResources().getColor(android.R.color.transparent));
            }
            return true;
        }
    });

并对 onClick 执行操作
    relative3.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            custom_toast("Redirecting...");
        }
    });

问题:

相对布局可以在 ACTION_DOWN 上显示突出显示,并在 ACTION_UP 上变回透明。然而,它被点击, toast 根本没有显示为编码。

怎么可能修改呢?谢谢!

最佳答案

确保布局具有 android:clickable="true" 属性

进行颜色更改的正确方法是使用具有按下和正常状态的背景可绘制 xml。如果您在代码中执行此操作,请使用 getActionMasked() 而不是 getAction()

10-07 19:24