如何拥有棒棒糖开关按钮
How to have a Lollipop switch button
我想为我的应用程序添加 Lollipop 风格的切换按钮:
我如何实现此按钮,使其在 android 的旧版本上也看起来像这样?
我想你需要的在那个图书馆里
这个库的作用是允许您创建 material 像在 andorid 5.0 中一样的设计开关按钮
Android 开发者博客上有一篇很棒的文章讨论了如何在 Lollipop 之前的设备上使用 material 设计:http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html
为了更具体地回答您的问题,您可以通过使用 SwitchCompat
API: https://developer.android.com/reference/android/support/v7/widget/SwitchCompat.html
对旧版本使用 Lollipop 样式开关
首先在您的清单中设置 android:targetSdkVersion="22"
以使您的应用与 Lollipop.
兼容
注意:开关的颜色取决于此
<item name="android:colorAccent">@color/accent</item>
为您的应用创建您自己的主题
styles.xml 在文件夹 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 在默认文件夹 values 或 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>
要在旧版本 android 上使用 Lollipop 样式的切换按钮,您应该在布局 xml 文件
中使用 SwitchCompat
<android.support.v7.widget.SwitchCompat
android:id="@+id/compatSwitch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
并且也在 java 文件中
SwitchCompat switchCompat = (SwitchCompat) findViewById(R.id.compatSwitch);
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" />
为了解决老式开关
switch_old
- 将您的 minsdkversion 和 targetsdkversion 分别更新为 19 和 28。
- 更新 gradle 依赖于
实施 'com.android.support:appcompat-v7:28.0.0'
- 在 style.xml 中设置基本应用主题,如
`
<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>`
它用最新的 material 设计解决开关问题。
我想为我的应用程序添加 Lollipop 风格的切换按钮:
我如何实现此按钮,使其在 android 的旧版本上也看起来像这样?
我想你需要的在那个图书馆里
这个库的作用是允许您创建 material 像在 andorid 5.0 中一样的设计开关按钮
Android 开发者博客上有一篇很棒的文章讨论了如何在 Lollipop 之前的设备上使用 material 设计:http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html
为了更具体地回答您的问题,您可以通过使用 SwitchCompat
API: https://developer.android.com/reference/android/support/v7/widget/SwitchCompat.html
首先在您的清单中设置 android:targetSdkVersion="22"
以使您的应用与 Lollipop.
注意:开关的颜色取决于此
<item name="android:colorAccent">@color/accent</item>
为您的应用创建您自己的主题 styles.xml 在文件夹 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 在默认文件夹 values 或 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>
要在旧版本 android 上使用 Lollipop 样式的切换按钮,您应该在布局 xml 文件
中使用 SwitchCompat<android.support.v7.widget.SwitchCompat
android:id="@+id/compatSwitch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
并且也在 java 文件中
SwitchCompat switchCompat = (SwitchCompat) findViewById(R.id.compatSwitch);
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" />
为了解决老式开关
switch_old
- 将您的 minsdkversion 和 targetsdkversion 分别更新为 19 和 28。
- 更新 gradle 依赖于 实施 'com.android.support:appcompat-v7:28.0.0'
- 在 style.xml 中设置基本应用主题,如
`
<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>`
它用最新的 material 设计解决开关问题。