Establecer el botón de Android invisible, pero todavía tiene un oído onClick adjunto

Así que actualmente estoy poniendo un huevo de Pascua dentro de mi aplicación y quiero que el Button sea ​​invisible, pero cuando se hace clic (Rick roll). Hasta ahora puedo hacer que funcione cuando digo:

 Button.setVisibility(view.VISIBLE); Button.setBackgroundColor(Color.TRANSPARENT); 

Y luego mi onClickListener . El único problema con esto es que tengo que tener texto en el Button para que pueda hacer clic. Cuando tomo el texto y lo hago completamente invisible entonces el onClickListener nunca se llama por alguna razón?

Aquí está mi OnClickListener

 wonderWhatThisDoes.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { mMediaPlayer = MediaPlayer.create(About.this, R.raw.surprise); mMediaPlayer.start(); Context context = getApplicationContext(); CharSequence text = "Congrats on finding our easter egg! Enjoy... :]"; Toast toast = Toast.makeText(context, text, Toast.LENGTH_LONG); toast.show(); } }); 

En su diseño, haga que su botón tenga un ancho específico, como android:layout_width="40dp" .

Si su ancho está configurado en wrap_content con un fondo transparente y sin texto, Android midirá esa vista como si tuviera un ancho de 0dp. Nunca podrás hacer clic en eso.

Intente hacer el texto en el botón "" …

 myButton.setText(" "); 

Puede crear cualquier vista, como LinearLayout, como haga clic. Hacer un LinearLayout con las mismas dimensiones que el botón y establecer su onClick oyente a lo que maneja el evento. Dado que no es inherentemente visible, debe tener el mismo efecto.

Asegúrese de que el ancho y la altura de su botón no se wrap_content a wrap_content porque eso haría que el botón sea extremadamente pequeño si el texto es "". Si eso no funciona, también puede intentar reemplazar onClick () con onTouch ():

 button1.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub return false; } }); 

La respuesta simple se establece alfa a 0 como este.

  <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:alpha="0" android:clickable="true" android:onClick="getAllImages" android:visibility="visible" /> 

Será invisible y onclick funcionará.

No utilice un botón y reemplaza el evento dispatchTouchEvent de su actividad y lo maneje de esa manera.

Puede agregar un OnClickListener a cualquier View , así que intente crear un ImageView con una imagen transparente y adjunte su oyente a eso.

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b = (Button) findViewById(R.id.button1); final CheckBox cb = (CheckBox) findViewById(R.id.checkBox1); b.setBackgroundColor(Color.TRANSPARENT); b.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { // TODO Auto-generated method stub cb.setChecked(true); 

A este botón del código es invisible pero trabajó;))

También puede desactivar el botón (no se puede hacer clic).

En código java:

 btn.setClickable(false); 

En el diseño .xml:

 android:clickable="false" 

Esto funciona correctamente para mí:

  • btn.setClickable(false) en la visibilidad GONE .
  • btn.setClickable(true) en visibilidad VISIBLE .
  • AppCompatButton backgroundTint API <21
  • El botón de la barra de acciones no se muestra en la vista de búsqueda de Android
  • Hacer que un botón Datepicker tenga un aspecto similar al de la aplicación de calendario de Google
  • Android - State Selector Animaciones - Sólo animar de-prensa, NO presione
  • Cómo iniciar una nueva actividad al hacer clic en el botón
  • Verde del botón del androide
  • Obtener la posición del elemento listview en el botón de clic
  • Cómo alinear el botón por centro y hacer offset
  • El botón onClick no funciona
  • Cómo hacer un pequeño botón mediante programación de texto pequeño
  • Cómo cambiar el color predeterminado en todos los textos en mi aplicación de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.