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?
- Controlador de clics genérico del botón personalizado de Android
- Listview con Checkbox, RadioButton, Textview y el botón no funciona correctamente en android
- Configuración de la fuente de texto del botón en android
- El estilo de Button es añadir atributo desconocido - Android
- Cómo configurar el estilo de un botón en Android?
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(); } });
- Reproducción y pausa de vídeo en pantalla
- El método no estático 'getSharedPreferences (java.lang.String, int)' no se puede referenciar desde un contexto estático
- Implementar android: button = "@ drawable / checkbox" por programa
- ¿Cómo personalizar el botón?
- Vinculación de datos de Android mediante etiqueta de inclusión
- Evitar que ProgressDialog sea rechazado por onClick
- ¿Por qué el texto de mi botón está forzado a TODOS LOS MAYÚSCULAS en Lollipop?
- Botón con fondo transparente oscurece en Lolipop android
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 visibilidadGONE
. -
btn.setClickable(true)
en visibilidadVISIBLE
.