在我的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);
}
}
);
}