Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo eliminar el relleno del botón de conmutación en Android

Estoy creando un simple botón de conmutación en android y configuración de fondo como un drawable.

<ToggleButton android:layout_width="wrap_content" android:drawablePadding="0dp" android:layout_height="wrap_content" android:text="" android:textSize="12sp" android:padding="0dp" android:id="@+id/tag_text" android:background="@drawable/toggle_selector"/> 

Toggle_selector.xml se parece a esto:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/toggle_button_off" android:state_checked="false"/> <item android:drawable="@drawable/toggle_button_on" android:state_checked="true"/> </selector> 

Toggle_button_off y toggle_button_on tienen una forma sencilla dibujable con algún color.

Y esto es cómo estoy inflando este botón de conmutación en mi vista:

 View child = getLayoutInflater().inflate(R.layout.tags, null); ToggleButton tag = ((ToggleButton)child.findViewById(R.id.tag_text)); tag.setText("Testing"); tag.setTextOff("Testing"); tag.setTextOn("Testing"); flowlayout.addView(child); 

El problema es que hay demasiado relleno alrededor del texto en el botón de conmutación y no soy capaz de deshacerse de él mediante el ajuste de padding = "0dp" . El texto de estos botones se agrega dinámicamente, por lo que configurar un peso de altura constante no ayuda demasiado.

Introduzca aquí la descripción de la imagen

  • Centrar la imagen ToggleButton - sin texto
  • Cómo cambiar el color de texto de un Android ToogleButton en el cambio de estado?
  • Colocación de etiquetas de texto ToggleButton para estado activado y desactivado
  • Pantalla personalizada de botón de conmutación de Android
  • ¿Es posible crear un ToggleButton sin texto?
  • Botón de encendido / apagado en las preferencias y barra de acción - Ice Cream Sandwich Estilo
  • Establecer ToggleButton para reproducir el sonido predeterminado cuando se hace clic en?
  • Cómo cambiar el estado ToggleButton mediante programación?
  • 2 Solutions collect form web for “Cómo eliminar el relleno del botón de conmutación en Android”

    Conseguí la solución fijando minWidth, minHeight a 0dp. Envolver contenido en el ancho y la altura. Y luego añadiendo el relleno personalizado a togglebutton que quiero.

     <ToggleButton android:layout_width="wrap_content" android:minWidth="0dp" android:minHeight="0dp" android:layout_height="wrap_content" android:text="" android:textSize="12sp" android:padding="2dp" android:id="@+id/tag_text" android:background="@drawable/toggle_selector"/> 

    Utilice CheckedTextView en su lugar:

      final CheckedTextView toggle = new CheckedTextView(clipboardWordsLayout.getContext()); toggle.setText(kanji); final int min = Views.dp2px(48, clipboardWordsLayout.getContext()); toggle.setMinimumWidth(min); toggle.setMinimumHeight(min); toggle.setGravity(Gravity.CENTER); toggle.setBackgroundResource(R.drawable.togglebutton); toggle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { toggle.setChecked(!toggle.isChecked()); } }); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.