7

DatePickerにスタイルを適用したいと思います。 platform's attrs.xmlでは、DatePicker styleableのために以下の属性を見ることができます:私はandroid:headerBackgroundを参照することができますがandroid namespaceの属性を解決できません

<declare-styleable name="DatePicker"> 
    ... 
    <!-- The text color for the selected date header text, ex. "2014" or 
     "Tue, Mar 18". This should be a color state list where the 
     activated state will be used when the year picker or day picker is 
     active.--> 
    <attr name="headerTextColor" format="color" /> 

    <!-- The background for the selected date header. --> 
    <attr name="headerBackground" /> 
    ... 
</declare-styleable> 

が、予想外に私がandroid:headerTextColor属性のためにそれを行うことはできません。だから、styles.xmlのコードを次

<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.DatePicker"> 
    <item name="android:headerBackground">@color/red</item> 
    <item name="android:headerTextColor">@color/red</item> 
</style> 

android:headerTextColorは解決できないことを、エラーで求められます。

enter image description here

しかし、私はclearly seeWidget.Material.DatePickerその属性をオーバーライドすることができます。面白いことに、コードの塊に先にAttributes for new-style DatePickerコメントが付いているため、何らかの原因でこの現象が発生する可能性があります。

この現象の原因とその属性を上書きする方法はありますか? Androidのメーカー2.3、minSdkVersionが23、buildToolsVersion 25.0.3、 compileSdkVersion & targetSdkVersion 23上で実行

は、キャッシュと清掃プロジェクトを無効に。あなたがR.attr docsで見ることができるように


は、いくつかの属性の後ろにこのテキストがあります:

この定数は、APIレベル23を使用するheaderTextColor代わりに廃止されました。

これは、この属性をパブリックAPIに公開する必要があることを意味しますが、何らかの理由でそれが削除され、AAPTはアクセスできません。

公開an issueバグトラッカー。

+0

@hide<項目名=アプリ:headerBackground ">欠落しています。色/ – Pavya

+0

赤奇数@を私は同じ動作を見ています'アンドロイド:。headerMonthTextAppearance'静止画は、月の外観を上書きする働きを。残念ながら、 'android:headerYearTextAppearance'も壊れているようですので、これは回避策の半分にすぎません。 – Cheticamp

+0

@Cheticamp、' android:headerYearTextAppearance'に関する動作も見ました。質問](https://stackoverflow.com/a/44088524/1083957)。どうやら、私は年のテキストの外観を変更するために縫い目を見つけることができましたが、なぜこの属性が見られなかったのか私には謎でした。それはバグのようです。 – azizbekian

答えて

-1

<style name="DatePicker"> 
     <item name="android:headerBackground">@color/colorPrimaryDark</item> 
     <item name="headerTextColor">@color/colorAccent</item> 
</style> 

この

Style.xml

を使用してみてください値フォルダ attr.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="DatePicker"> 
     ... 
     <!-- The text color for the selected date header text, ex. "2014" or 
      "Tue, Mar 18". This should be a color state list where the 
      activated state will be used when the year picker or day picker is 
      active.--> 
     <attr name="headerTextColor" format="color" /> 
    </declare-styleable> 
</resources> 
+0

['指定された名前と一致するリソースが見つかりません:attr 'headerTextColor''](https://i.gyazo.com/290d94c771d9fc11518ea575b3260b9a.png) – azizbekian

+0

これは動作しません。 – azizbekian

+0

申し訳ありません**アンドロイド:headerBackground **の色を設定することができますし、逆の色をとり** private attrである** headerTextColor **に設定します。ありがとうTin Tran –

2

style attribute "android:attr/headerTextColor" is private

AAPTは、属性がプライベートであることを述べています。おそらく彼らは、attrs.xml

+0

あなたが正確にどのようにこのエラーメッセージを再現することができ明確にしてくださいことはできますか?あなたはAAPT2を使用していますか?第二に、私は彼らが代わりに廃止予定の 'headerMonthTextAppearance'、' headerDayOfMonthTextAppearance'と 'headerYearTextAppearance'のまさにこの属性を使用することをお勧めので、この属性は' private'行われていなければならないかを確認することはできません。 [こちら](https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/attrs.xml#L4827)を参照してください。 – azizbekian

+0

私はAndroid Studio 3.0を使用してAAPT2を使用しています。 また、Androidのメーカー2.3でaapt2使用するgradle.properties' 'に' android.enableAapt2 = false'を追加することができます。 は、ええ、私はhttps://developer.android.com/reference/android/R.attr.htmlがあまりにも属性を文書化されていない、headerTextColor'はプライベートではありません 'を参照してください。 –

関連する問題