2012-02-23 47 views
9

私は、アプリケーションにTheme.Lightテーマを使用するCalendarViewを追加しようとしています。問題は、このカレンダーの日数が白でレンダリングされるため、軽いテーマを使用しているときは表示されません。CalendarViewスタイルを変更する

今、私は私のXMLレイアウトファイルに次のコードがあります。

<CalendarView 
    android:id="@+id/calendar1" 
    android:layout_width="500dp" 
    android:layout_height="300dp"/> 

を私はこのようなカレンダーのテーマを強制しようとした:

<CalendarView 
    android:id="@+id/calendar1" 
    android:layout_width="500dp" 
    android:layout_height="300dp" 
    android:theme="@android:style/Theme.Light" /> 

しかし、それは何も変わりません。私はアンドロイドで何かやるべきだと思う:dateTextAppearanceプロパティをので、私はこれを試してみました:

<CalendarView 
    android:id="@+id/calendar1" 
    android:layout_width="500dp" 
    android:layout_height="300dp" 
    android:dateTextAppearance="@android:style/TextAppearance.Large.Inverse" /> 

を、それはどちらか何もしません。

アイデア?

ありがとうございます!

答えて

28

私のプロジェクトでは、テーマに「android:calendarViewStyle」という属性を定義しました。

<style name="Theme.Custom" parent="@android:Theme"> 
    <item name="android:calendarViewStyle">@style/Widget.CalendarView.Custom</item> 
</style> 

<style name="Widget.CalendarView.Custom" parent="android:Widget.CalendarView"> 
    <item name="android:focusedMonthDateColor">@color/cs_textcolor</item> 
    <item name="android:weekNumberColor">@color/red</item> 
    <item name="android:weekDayTextAppearance">@style/TextAppearance.Medium</item> 
    <item name="android:dateTextAppearance">@style/TextAppearance.Medium</item> 
</style> 

すべてのスタイルの可能性があります:android.R参照

  • android.R.styleable#CalendarView_showWeekNumber REF @attr
  • @attr
  • android.R.styleable#CalendarView_firstDayOfWeek REF @attr .styleable#CalendarView_minDate
  • @attr ref.style#CalendarView_maxDate
  • @attr refとandroid.R.styleable#CalendarView_unfocusedMonthDateColor
  • REF roid.R.styleable#CalendarView_shownWeekCount
  • android.R.styleable#CalendarView_selectedWeekBackgroundColor REF @attr
  • @attr
  • android.R.styleable#CalendarView_focusedMonthDateColor REF @attr @ android.R.styleable#CalendarView_selectedDateVerticalBar REFのattr参照android.R.styleable#CalendarView_weekNumberColor
  • @attr
  • android.R.styleable#CalendarView_weekSeparatorLineColor REF @attr
  • android.R.styleable#CalendarView_weekDayTextAppearance REF @attr
  • @attr

android.R.styleable#CalendarView_dateTextAppearance REF注記:showWeekNumberは、XMLスタイルとして動作しない場合、あなたはsetShowWeekNumberをコードで設定することができます(真実)。

+0

正しいですか?

+2

上記の解決策を使用してカラーテーマを変更できません –

+0

もう少し詳しいことを教えてください。どこで「@attr」のものを使うのですか?私はそれを全く知らない。 –

5

私も多くの問題を抱えています。完璧ではありませんが、私はどのようにすべての面を修正するかを理解していませんでした。これは私がプロジェクトのスタイルでやった方法です。私は、これら2つのスタイルを追加のxml:次に

<style name="CalenderViewCustom" parent="Theme.AppCompat"> 
    <item name="colorAccent">@color/white_30</item> 
</style> 

<style name="CalenderViewDateCustomText" parent="android:TextAppearance.DeviceDefault.Small"> 
    <item name="android:textColor">@color/white</item> 
</style> 

<style name="CalenderViewWeekCustomText" parent="android:TextAppearance.DeviceDefault.Small"> 
    <item name="android:textColor">@color/white_30</item> 
</style> 

は、CalendarViewのために私はなるようにそれらのスタイルを参照:

<CalendarView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:theme="@style/CalenderViewCustom" 
    android:dateTextAppearance="@style/CalenderViewDateCustomText" 
    android:weekDayTextAppearance="@style/CalenderViewWeekCustomText"/> 

あなたは上記CalenderViewCustomする色(プライマリ/セカンダリ)の他のタイプを追加することができます。

関連する問題