有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java SwitchPreference默认颜色

我正在使用的应用程序已将主/暗/强调色设置为我想要的颜色,并且它们显示在正确的位置(如预期的那样)。我有一个我正在使用的偏好活动,我希望我正在使用的preferenceswitch的颜色将以强调色呈现。相反,它们以青色材质渲染。我想知道棒棒糖的这种默认行为,比如在Kitkat中是蓝色的吗?我甚至没有在我的代码或我的colors.xml/styles.xml中的任何地方引用颜色

颜色。xml

<resources>
    <color name="primary">#00BCD4</color>
    <color name="primary_dark">#0097A7</color>
    <color name="accent">#FFD740</color>
</resources>

风格。xml

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="安卓:colorPrimary">@color/primary</item>
        <item name="安卓:colorPrimaryDark">@color/primary_dark</item>
        <item name="安卓:colorAccent">@color/accent</item>
    </style>
</resources>

有什么想法吗?我会提供更多的信息。我在这里看到了一些关于创建自定义内容的内容,但这真的有必要吗

偏好活动。java

public class PreferenceActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        PrefFrag prefFragment = new PrefFrag();
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(安卓.R.id.content, prefFragment);
        fragmentTransaction.commit();
    }
}

共 (1) 个答案

  1. # 1 楼答案

    当您使用AppCompat时,应该使用每个属性的非前缀版本——这确保它们在所有API级别上都可用(不像android:版本,后者仅适用于API21+):

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
    </style>