2012-02-17 19 views
19

ICS tiene un componente de interruptor. Hace lo que necesitamos. ¿Hay algo por ahí compatible con versiones anteriores (alrededor de 2.2)? No pude encontrar nada obvio.Conmutador retrocompatible


Parece que alguien construyó este:

https://github.com/Prototik/KFramework-SW.git

+5

enlace ya no funciona – mprabhat

+0

Qué pasa con aquellos: https://github.com/yongjhih/SwitchPreferenceCompat https://github.com/ankri/SwitchCompatLibrary https: // github.com/BoD/android-switch-backport –

Respuesta

10

Switch es sólo de 4.0 +

Si desea hacer una aplicación que utiliza el interruptor en dispositivos 4.0+ lo que necesita hacer es declarar dos diseños. El primero en layout-v14 que será lo que se usa en los dispositivos ICS. En su carpeta de diseño, use CheckBox.

En su código, haga uso de la clase CompoundButton al obtener/configurar datos desde el interruptor o la casilla de verificación. Descubrirá que CompoundButton funciona bien para esto.

+0

No entiendo su respuesta. Entiendo las convenciones de nomenclatura de carpetas. No entiendo a qué te refieres con CompoundButton. En resumen, la respuesta es "no", ¿correcto? –

+1

Intenté decir que puede tener un código que utiliza el encendido de ICS pero utiliza la casilla de verificación en Pre ICS. Pero sí, en resumen, la respuesta es "no". – Lee

+0

Solo para confirmar, a partir de hoy, ningún recurso de compatibilidad de fuente abierta. Si llego el tiempo, puede crear uno. Realmente me gusta la forma en que funciona. –

4

Esta biblioteca es lo que está buscando: https://github.com/BoD/android-switch-backport

+0

Otro: http://www.androidviews.net/2012/12/switch-compat/ –

+0

Probé el primero y funciona bien. La calidad del código podría ser mejor (casi no javadoc, difícil de entender a veces, difícil de modificar). Pero la lib está bien hecha en general y ofrece un cambio que puede ser completamente temático. Obtuvimos un buen resultado a través de [Android Holo Colors] (http://android-holo-colors.com/). – Snicolas

+0

Intenté ambos y funcionan bastante bien, excepto un problema grave en algunos dispositivos: la primera vez una actividad temática apropiada para incluir interruptores, la aplicación falla porque uno de los atributos de texto no se encuentra, lo que da como resultado un puntero nulo para el contenido de texto. como si el tema no estuviera establecido, ¿alguien se enfrenta a esto y tiene una solución? – 3c71

0

Si está utilizando la biblioteca holoeverywhere, puede utilizar algo como esto en su archivo de diseño

<org.holoeverywhere.widget.Switch 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
/> 
44

Compatibilidad con Android La biblioteca AppCompat de la versión 21.0.0 contiene android.support.v7.widget.SwitchCompat para proporcionar compatibilidad con API v7. https://developer.android.com/reference/android/support/v7/widget/SwitchCompat.html

incluirlo como este con Gradle:

compile 'com.android.support:appcompat-v7:21.0.0' 

Puede ser utilizado en los diseños como esto:

<android.support.v7.widget.SwitchCompat /> 

Además tiene showText atributo para hacer peinado más fácil - que parece ser falta de andriod nativo Switch.

+0

Funciona para mí, interruptor de show de SwitchCompat en 4.x sytle (no se ve feo) como 5.x 6.x (se ve bien), buen cambio ¡Cambie a SwitchCompat! – shuabing

4

Aquí es un ejemplo de SwitchCompat

primero que debe hacer Asegúrese de agregar estas líneas a su build.gradle y luego sincronización.

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.0' 
} 

En segundo lugar crear una actividad de la muestra, en mi caso lo llamaré SwitchActivity.java.

public class SwitchActivity extends ActionBarActivity { 

     SwitchCompat mySwitch = null; 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_switch); 

      // here is your switch 
      mySwitch = (SwitchCompat)findViewById(R.id.myswitch); 

     } 
     ..... 
} 

Por último cree su diseño, en mi caso lo llamaré activity_switch.xml.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.neoecosystem.samplex.SwitchActivity"> 

    <android.support.v7.widget.SwitchCompat 
     android:id="@+id/myswitch" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" /> 

</RelativeLayout> 
Cuestiones relacionadas