当按钮不可见和可见功能打开时,onClick功能不会执行 - android

时间:2016-10-27 18:41:04

标签: android button onclick touch

在我的Android应用程序中,当我触摸片段时,按钮变得不可见,当我释放时,我的手指按钮变得可见。这是我想要的行为。

但不知何故,按钮上的onclick功能因此而无法执行。

所以,我尝试删除不可见和可见的功能。然后当我触摸按钮时执行onClick功能。

那么,当隐身和可见功能开启时,为什么onClick功能无法执行?

按钮布局:

<Button
   android:layout_width="200dp"
   android:layout_height="50dp"
   android:text="Open Camera"
   android:id="@+id/camera_btn"
   android:background="#ffffff"
   android:layout_alignParentBottom="true"
   android:layout_centerHorizontal="true" />

这里我根据此SO post设置了固定的宽度和高度。

使按钮在触摸和释放时不可见且可见的代码:

@Override
public boolean dispatchTouchEvent(MotionEvent event)
{
        switch (event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
                MapsActivity.mMapIsTouched = true;
                hideElementsOnMapTouch();
                break;

            case MotionEvent.ACTION_UP:
                MapsActivity.mMapIsTouched = false;
                showElementsOnMapTouchRelease();
                getCenterLocation();
                break;
        }
        return super.dispatchTouchEvent(event);
}

public void hideElementsOnMapTouch()
{
        centerLocation_txt.setVisibility(View.INVISIBLE);
        camera_btn.setVisibility(View.INVISIBLE);
}

public void showElementsOnMapTouchRelease()
{
        centerLocation_txt.setVisibility(View.VISIBLE);
        camera_btn.setVisibility(View.VISIBLE);
}

按钮onClick Listener:

public void onCameraButtonClicked()
    {

        camera_btn.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Log.d("myApp", "no network");
                        Intent camera_intent = new Intent("com.example.lalinda.googlemap1.Camera");
                        startActivity(camera_intent);
                    }
                }
        );
    }

0 个答案:

没有答案