我想为我的应用设置Lollipop样式开关按钮:
我怎么能实现这个按钮所以在旧版本的android上看起来也是这样?
答案 0 :(得分:40)
要在旧版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);
答案 1 :(得分:11)
首先在您的清单中设置android:targetSdkVersion="22"
,使您的应用与 Lollipop 兼容。
注意:您的开关颜色取决于此
<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>
默认文件夹值或 values-v14 中的styles.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>
答案 2 :(得分:10)
Android开发者博客上有一篇很棒的文章讨论了如何在棒棒糖前设备上使用素材设计:http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html
要更具体地回答您的问题,您可以使用SwitchCompat
API对旧版本使用Lollipop样式开关:https://developer.android.com/reference/android/support/v7/widget/SwitchCompat.html
答案 3 :(得分:5)
关闭开关上的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"/>
答案 4 :(得分:0)
答案 5 :(得分:0)
我们在棒棒糖版本中使用SwitchCompact,或者你可以使用更新的lolliopop版本更好
<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" />
答案 6 :(得分:0)
为了解决旧式开关
`
<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>`
并使用最新的材料设计解决开关问题。