web-dev-qa-db-fra.com

Comment avoir un bouton Lollipop

Je veux avoir le bouton de changement de style Lollipop pour mon application:

enter image description here

Comment puis-je implémenter ce bouton afin qu'il ressemble à ceci également sur les anciennes versions d'Android?

19
stoefln

Au début, définissez Android:targetSdkVersion="22" dans votre manifeste pour rendre votre application compatible avec Lollipop .

NOTE: La couleur de votre commutateur en dépend  

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

Créez votre propre thème pour votre application dans styles.xml dans Dossier values-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 in default Folder values ​​ou values-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>
11
ch3tanz

Pour avoir le bouton de changement de style Lollipop sur les anciennes versions d'Android, vous devez utiliser SwitchCompat dans un fichier XML

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

et aussi en fichier Java

SwitchCompat switchCompat = (SwitchCompat) findViewById(R.id.compatSwitch);
40
dzikovskyy

Il existe un excellent article sur le blog Android Developers qui explique comment utiliser la conception de matériel sur des appareils antérieurs à Lollipop: http://Android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for -pre.html

Pour répondre plus précisément à votre question, vous pouvez utiliser le commutateur de style Lollipop pour les versions antérieures à l’aide de l’API SwitchCompat: https://developer.Android.com/reference/Android/support/v7/widget/SwitchCompat.html

10
Willis

API 24 marche/arrêt

<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"/>
5
A.G.THAMAYS

Je pense que ce dont vous avez besoin est dans cette bibliothèque 

ce que cette bibliothèque fait est de vous permettre de créer un bouton de changement de conception de matériau comme dans andorid 5.0

https://github.com/kyleduo/SwitchButton

0

Nous utilisons SwitchCompact dans la version Lollipop ou vous pouvez utiliser la version mise à jour de Lolliopop, c'est mieux 

<Android.support.v7.widget.SwitchCompat
    Android:id="@+id/compatSwitch"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_below="@+id/switch2"
    Android:layout_alignLeft="@+id/switch2"
    Android:layout_alignStart="@+id/switch2"
    Android:layout_marginTop="39dp" />
0
nagaraja T

Afin de résoudre l'ancien type de commutateur

switch_old

  1. mettez à jour vos versions minsdkversion et targetdkversion à 19 et 28 respectivement .
    1. mettre à jour la dépendance de gradle vers implementation 'com.Android.support:appcompat-v7:28.0.0'
    2. définir le thème de l'application de base dans style.xml comme 

`

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorAccent">@color/colorAccent</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    </style>`

et il résout le commutateur avec la dernière conception matérielle.

0
Shweta Bhagat