Colocación de etiquetas de texto ToggleButton para estado activado y desactivado
¿Hay de todos modos para controlar la posición del texto para un ToggleButton encendido y apagado estado? Por ejemplo, quiero que la etiqueta de texto quede alineada a la izquierda cuando esté encendida y alineada a la derecha cuando esté apagada.
EDIT: Además, tendría que incluir un poco de relleno para el texto a la izquierda y la derecha. Acerca de 5dp. Y tener un control más fino sobre la colocación de la etiqueta si es posible.
- Botón de alternancia en el cajón de navegación
- Android: Crear un botón de alternancia con imagen y sin texto
- Cómo cambiar el estado ToggleButton mediante programación?
- Agregar el widget Switch a ActionBar y responder al evento de cambio
- ¿Cómo puedo obtener el texto dinámico ToggleButton en android?
RESPUESTA: ¡Esto es lo que necesitaba!
button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL); button.setPadding(0, 0, 5, 0);
- Cómo realizar vinculación de datos de dos vías con un ToggleButton?
- Establecer ToggleButton para reproducir el sonido predeterminado cuando se hace clic en?
- Botón de selección de Android MenuItem
- Android Toggle Button en ActionBar
- ToggleButton en ListView, el valor cambia automáticamente al desplazarse
- Botón de Toggle de Android tamaño personalizado / relleno / espaciado
- Android - ¿Espacio entre TextView y Togglebutton?
- ¿Cómo saber si el usuario ha cambiado el estado del botón de alternancia?
public class StackActivity extends Activity implements OnCheckedChangeListener { private ToggleButton tb; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tb = (ToggleButton)findViewById(R.id.toggleButton1); tb.setOnCheckedChangeListener(this); } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked) { tb.setGravity(Gravity.LEFT); tb.setPadding(5,0,0,0); // Set left padding } else { tb.setGravity(Gravity.RIGHT); tb.setPadding(0,0,5,0); // Set right padding } } }
ToggleButton b1 = (ToggleButton) findViewById(R.id.button1); if(b1.isChecked()){ b1.setGravity(Gravity.RIGHT); } else{ b1.setGravity(Gravity.LEFT); }
Tenga en cuenta que no verá ningún cambio si el botón no es de tamaño mínimo (tiene que ser mayor que el texto lable).
Puesto que ToggleButton es una subclase de TextView, intenta usar android:gravity="left"
.
Por favor, prefiero http://developer.android.com/reference/android/widget/TextView.html#attr_android:gravity .
Cambie la alineación cambiando la gravedad cada vez que se hace clic en el botón agregando algún código en el OnClickListener de esta manera:
toggleButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (((ToggleButton)v).isChecked()) toggleButton.setGravity(Gravity.LEFT); else toggleButton.setGravity(Gravity.RIGHT); } });
Esto es lo que necesitaba!
button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL); button.setPadding(0, 0, 5, 0);
- Fuera de los errores de memoria se producen con un tamaño de montón alto pero tamaño asignado bajo. ¿Por qué?
- Android Studio Mac versión v.0.3.2 está dañado