我在自定义对话框偏好设置的布局中有一个搜索栏。我更改了styles.xml以使用新的材料设计。它的工作原理是它更改了我的设置的文本和复选框,但我无法将颜色应用到我的搜索栏。只有当我在一个活动中放置一个搜索栏时,它才有效,这意味着我必须在我的自定义布局中做一些事情,但我不知道是什么。我使用搜索栏发布styles.xml和布局:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppBaseTheme" parent="android:Theme.Material">
<!-- Main theme colors -->
<!-- your app's branding color (for the app bar) -->
<item name="android:colorPrimary">#FFFF4444</item>
<!-- darker variant of colorPrimary (for status bar, contextual app bars) -->
<item name="android:colorPrimaryDark">#FFCC0000</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="android:colorAccent">#FFFF00</item>
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
对话框首选项的自定义布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<SeekBar
android:id="@+id/seek_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="6dip"
android:theme="@android:style/Theme.Material"
android:layout_marginTop="6dip" />
</LinearLayout>
答案 0 :(得分:6)
使用Lollipop根本不需要它。颜色很好用 甚至在自定义首选项对话框中 ~greywolf82
我想分享一些自定义Libs
您可以使用此 Material Design lib ,其中还包含许多其他小部件。
或
自定义搜索栏Lib DiscreteSeekBar
答案 1 :(得分:1)
您不需要在SeekBar元素上指定android:theme属性。相反,您应该在AppBaseTheme中设置默认对话框和警告对话框主题:
<style name="AppBaseTheme" parent="android:Theme.Material">
...
<item name="android:dialogTheme">@style/AppDialogTheme</item>
<item name="android:alertDialogTheme">@style/AppAlertTheme</item>
</style>
<style name="AppDialogTheme" parent="android:Theme.Material.Dialog">
<item name="android:colorPrimary">#FFFF4444</item>
<item name="android:colorPrimaryDark">#FFCC0000</item>
<item name="android:colorAccent">#FFFF00</item>
</style>
<!-- This should extend Theme.Material.Dialog.Alert, but that style was
incorrectly hidden in L-preview. It will be fixed in a future release.
You can approximate the style using the last two MinWidth attributes.-->
<style name="AppAlertTheme" parent="android:Theme.Material.Dialog">
<item name="android:colorPrimary">#FFFF4444</item>
<item name="android:colorPrimaryDark">#FFCC0000</item>
<item name="android:colorAccent">#FFFF00</item>
<item name="android:windowMinWidthMajor">65%</item>
<item name="android:windowMinWidthMinor">95%</item>
</style>