如何使按钮不可点击但可触摸?

问题描述 投票:1回答:1

我有一个按钮,单击它会生成一个缩放动画,也可以使用onTouch事件将其拖动。

我想使其在第一次触摸后不可点击,而此代码可以。在这里OnClick

    btnScale.setOnClickListener(new Button.OnClickListener(){

        @Override
        public void onClick(View v) {

            v.startAnimation(animScale);
            btnScale.setClickable(false);

        }});

此代码也帮助我拖动它。在这里OnTouch

 btnScale.setOnTouchListener(new Button.OnTouchListener(){

            public boolean onTouch(View v, MotionEvent me) {
                if (me.getAction() == MotionEvent.ACTION_DOWN) {
                    oldXvalue = me.getX();
                    oldYvalue = me.getY();
                } else if (me.getAction() == MotionEvent.ACTION_MOVE) {

                    //RelativeLayout rl = (RelativeLayout) findViewById(R.id.background);
                    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(v.getWidth(), v.getHeight());

                    params.leftMargin = (int) (me.getRawX() - (v.getWidth() / 2));
                    params.topMargin = (int) (me.getRawY() - (v.getHeight()));

                    //LayoutParams params = new LayoutParams(v.getHeight(), (int) (me.getRawX() - (v.getWidth() / 2)), (int) (me.getRawY() - (v.getHeight())));
                    v.setLayoutParams(params);
                }
                return false;
            }});

但是单击后,我仍然要拖动它。但是,当我将其设为不可点击时,它也无法被拖动,因为它也是不可触摸的

编辑:

当我将onClick的if else状态用作布尔变量时,我仍然可以单击该按钮,并且圆形按钮上会出现一个难看的正方形。

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="#61d5ee">
    <item>
        <shape android:shape="oval">
            <solid android:color="#61d5ee"/>
           <corners android:radius="5dp"  />
           <stroke android:width="4px" android:color="#cdf3fb" />
        </shape>
    </item>
</ripple>

该怎么办?

java android android-resources ontouchlistener android-touch-event
1个回答
1
投票

创建一个布尔值以说是否启用,请手动更改onClick中的状态并更改按钮的设计。在您的Onclick中使用类似以下内容:

if(enabled){
   do something
}else{
    //do nothing
}

您不需要其他,这只是一个例子。然后...他是可触摸的启用和禁用。

© www.soinside.com 2019 - 2024. All rights reserved.