datepicker的风格与活动不同

时间:2013-12-30 07:20:08

标签: android android-theme android-styles android-datepicker

我有自定义样式的活动,我希望我的活动有一个自定义标题栏,所以我创建了以下样式:

<style name="costum_titlebar">
    <item name="android:background">@color/titlebar_background</item>
</style>

<style name="CustomTheme" parent="android:Theme">
    <item name="android:windowTitleSize">@dimen/titlebar_size</item>
    <item name="android:windowTitleBackgroundStyle">@style/costum_titlebar</item>
</style>

在清单中我使用:

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/CustomTheme" >

在我使用的活动中:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
this.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.setting_activity_titlebar);

到目前为止它很好并且工作正常,我的自定义标题栏有活动 现在我想使用datePickerDialog。问题是对话框看起来很旧:

enter image description here

但我希望它看起来像这样:

enter image description here

我也有这种风格:

<style name="AppBaseTheme" parent="android:Theme.Light">

所以我用它来创建这样的DatePickerDialog:

new DatePickerDialog(getActivity(),R.style.AppBaseTheme, this, year, month, day);

但主题不适用。

只是为了测试,我创建了第二个具有默认样式的应用程序,只需一个按钮即可打开日期选择器,因此日期选择器 看起来像我想要的。这两个应用都有android:minSdkVersion="8"

我认为问题出在自定义标题栏上,那么如何才能获得所需风格的自定义标题栏和日期选择器呢?

编辑:

我改变了android:minSdkVersion="11"

 <style name="datePickerTheme" parent="@android:style/Widget.Holo.DatePicker"></style>
   和
new DatePickerDialog(getActivity(),R.style.datePickerTheme, this, year, month, day);

但结果仍然相同。

3 个答案:

答案 0 :(得分:13)

我知道这有点晚了,但在我搜索关于DatePickers的其他内容时,我进入了这个主题。

将此添加到您正在使用的自定义主题中:

<item name="android:datePickerStyle">@android:style/Widget.DatePicker</item>

这将覆盖您正在使用的父主题,并以不同的DatePicker结果。

您需要使用此自定义主题创建对话框。

我的主题示例:

<style name="CustomTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>
    <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item>
    <item name="android:actionButtonStyle">@style/MyActionBarButtonStyle</item>
    <item name="android:actionMenuTextColor">#ffffff</item>
    <item name="android:windowBackground">@drawable/bg</item>
    <item name="android:datePickerStyle">@android:style/Widget.DatePicker</item>
</style>

答案 1 :(得分:7)

试试这样:

style="@android:style/Widget.DatePicker"

答案 2 :(得分:5)

DatePickerDialog dateDialog = new DatePickerDialog(getActivity(),
                                                   android.R.style.Theme_Holo_Light_Dialog,
                                                   ondateSet, year, month, day);
dateDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

这是用于显示白色浅色背景日期选择器片段。