2015-04-20 9 views

risposta

9

In un primo momento impostato android:targetSdkVersion="22" nel manifesto per rendere la vostra applicazione compatibile Lollipop.

NOTA: colore dello switch dipende da questo

<item name="android:colorAccent">@color/accent</item> 

Creare il proprio tema per la vostra applicazione in styles.xml nella cartella valori-V21

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="AppTheme" parent="AppTheme.Base"> 
     <item name="android:colorPrimary">@color/primary</item> 
     <item name="android:colorPrimaryDark">@color/primary_dark</item> 
     <item name="android:colorAccent">@color/accent</item> 
     <item name="android:textColorPrimary">@color/text_primary</item> 
     <item name="android:textColor">@color/text_secondary</item> 
     <item name="android:navigationBarColor">@color/primary_dark</item> 
     <item name="toolbarStyle">@style/Widget.AppCompat.Toolbar</item> 
    </style> 
</resources> 

styles.xml nella cartella predefinita valori o valori-V14

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="AppTheme.Base"> 
     <!-- Customize your theme here. --> 

     <item name="toolbarStyle">@style/Widget.AppCompat.Toolbar</item> 
    </style> 

    <style name="AppTheme.Base" parent="Theme.AppCompat"> 
     <!-- Customize your theme here. --> 

     <!-- colorPrimary is used for the default action bar background --> 
     <item name="colorPrimary">@color/primary</item> 

     <!-- colorPrimaryDark is used for the status bar --> 
     <item name="colorPrimaryDark">@color/primary_dark</item> 

     <!-- colorAccent is used as the default value for colorControlActivated 
      which is used to tint widgets --> 
     <item name="colorAccent">@color/accent</item> 

     <!-- You can also set colorControlNormal, colorControlActivated 
      colorControlHighlight & colorSwitchThumbNormal. --> 
    </style> 

</resources> 
+1

Non impostare 'maxSdkVersion'.Ciò limiterà le installazioni fino a lolipop. Quello che ti serve è 'targetSdkVersion' –

+0

@MirceaNistor hai ragione. Ho aggiornato la mia risposta. Grazie :) – ch3tanz

0

Penso che quello che serve è in quella biblioteca

ciò che questa libreria non è quello di consentire di creare il pulsante interruttore di design dei materiali come in Andorid 5,0

https://github.com/kyleduo/SwitchButton

+1

Si prega di aggiungere un po 'più di informazioni di circa il libary, piuttosto che solo la pubblicazione di un collegamento. – JacksOnF1re

+0

Grazie per aver postato questo link. Non sapevo di questa libreria. E facendo clic sul link fornito maggiori informazioni! Vai a capire. –

+0

@MartyMiller nell'angolo in basso a destra c'è un pulsante per scaricare da lì è possibile scaricare quella libreria –

10

C'è un grande articolo su il blog degli sviluppatori Android che spiega come utilizzare il design dei materiali su dispositivi pre-Lollipop: http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html

Per rispondere più specificatamente alla domanda, è possibile utilizzare lo stile di Lecca-lecca ch per le versioni precedenti utilizzando l'API SwitchCompat: https://developer.android.com/reference/android/support/v7/widget/SwitchCompat.html

+2

Ottima risposta! Per lo stile, guarda l'aspetto di SwitchCompat: http://stackoverflow.com/a/26715076/457059 – stoefln

+0

Questa dovrebbe essere la vera domanda ... – desgraci

35

di avere il tasto di interruttore stile Lollipop su versioni precedenti di Android si dovrebbe usare SwitchCompat nel file XML di layout

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

e anche in java

SwitchCompat switchCompat = (SwitchCompat) findViewById(R.id.compatSwitch); 
+2

Inoltre puoi rimuovere il brutto sfondo grigio che appare quando selezioni lo switch usando questo codice: android: background = "@ null" – Tobliug

4

API 24 on off switch

  <android.support.v7.widget.SwitchCompat 
      android:id="@+id/switch1" 
      android:layout_alignBottom="@+id/textView3" 
      android:layout_alignEnd="@+id/input_layout_password" 
      android:layout_alignRight="@+id/input_layout_password" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 
0

Stiamo usando SwitchCompact nella versione lecca-lecca o uno che è possibile utilizzare Aggiornamento lolliopop versione suo codice migliore
`entrare qui

+0

+0

Puoi modificare la risposta – Saveen

Problemi correlati