Android 如何使用棒棒糖开关按钮

Android 如何使用棒棒糖开关按钮,android,android-5.0-lollipop,android-switch,Android,Android 5.0 Lollipop,Android Switch,我想为我的应用程序设置棒棒糖样式切换按钮: 我怎样才能在旧版本的android上实现这个按钮,使它看起来也像这样呢?我想你需要的是在这个库中 此库的作用是允许您创建andorid 5.0中的材质设计开关按钮 Android开发者博客上有一篇很棒的文章,讨论了如何在棒棒糖制作前的设备上使用材料设计: 为了更具体地回答您的问题,您可以在清单中首先设置android:targetSdkVersion=“22”,通过使用SwitchCompatAPI:为旧版本使用棒棒糖样式开关,使您的应用程序与棒棒糖

我想为我的应用程序设置棒棒糖样式切换按钮:


我怎样才能在旧版本的android上实现这个按钮,使它看起来也像这样呢?

我想你需要的是在这个库中

此库的作用是允许您创建andorid 5.0中的材质设计开关按钮


Android开发者博客上有一篇很棒的文章,讨论了如何在棒棒糖制作前的设备上使用材料设计:


为了更具体地回答您的问题,您可以在清单中首先设置
android:targetSdkVersion=“22”
,通过使用
SwitchCompat
API:

为旧版本使用棒棒糖样式开关,使您的应用程序与棒棒糖兼容

注意:开关的颜色取决于此

<item name="android:colorAccent">@color/accent</item>
@颜色/重音
在中为应用程序创建自己的主题 文件夹values-v21中的styles.xml

<?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>

@颜色/原色
@颜色/原色/深色
@颜色/口音
@颜色/文本/主
@颜色/文字
@颜色/原色/深色
@style/Widget.AppCompat.Toolbar
默认文件夹valuesvalues-v14中的style.xml

<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>

@style/Widget.AppCompat.Toolbar
@颜色/原色
@颜色/原色/深色
@颜色/口音

要在旧版本的android上使用棒棒糖风格的切换按钮,您应该在布局xml文件中使用SwitchCompat

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

<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"/>

我们在棒棒糖版本中使用SwitchCompact,或者您可以使用更新的棒棒糖版本

<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" />

以解决旧类型开关

  • 将minsdkversion和targetsdkversion分别更新为19和28。
  • 将渐变依赖项更新为 实现'com.android.support:appcompat-v7:28.0.0'
  • 在style.xml中设置基本应用程序主题,如
  • `

    
    @颜色/颜色重音
    @颜色/原色暗
    `
    

    并且它解决了与最新材料设计的切换。

    请添加更多关于图书馆的信息,而不仅仅是发布链接。感谢发布此链接。我不知道这个图书馆。并点击链接提供更多信息!想想看。@MartyMiller在右下角有一个下载按钮,你可以从那里下载图书馆的答案!要设置SwitchCompat的样式,请参见此处:不要设置
    maxSdkVersion
    。这将限制你的安装到lolipop。您需要的是
    targetSdkVersion
    @MirceaNistor您是对的。我更新了我的答案。谢谢:)此外,您可以使用以下代码删除选择开关时出现的难看的灰色背景:android:background=“@null”
    <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" />
    
    <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>`