2017-06-24 13 views
0

私は今AppCompatテーマを使用してUIをデザインしています。このUIをスタイリングするとき、私はスタイル属性についていくつかの混乱を見つけました。Androidのテーマとスタイルの属性の違い "android:xxxx"対 "xxxx"

項目名の一部は、android:xxxxで始まらない場合、コンパイルが失敗し、項目名が見つかりません。

しかし、他の場合は、android:xxxxで始まる場合、スタイルは適用されません。例えば

<!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="android:windowContentOverlay">@null</item> 
     <item name="android:windowBackground">@android:color/white</item> 
     <item name="android:colorBackground">@android:color/white</item> 
     <item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item> 
     <item name="autoCompleteTextViewStyle">@style/cursorColor</item> 
     <item name="editTextStyle">@style/textCursorColor</item> 
</style> 

<style name="MyToolbarPopupStyle" parent="ThemeOverlay.AppCompat.Light"> 
     <item name="android:colorBackground">@android:color/white</item> 
     <item name="android:textColor">@android:color/black</item> 
     <item name="searchViewStyle">@style/MySearchViewStyle</item> 
</style> 

<style name="textCursorColor" parent="Widget.AppCompat.EditText"> 
     <item name="android:textCursorDrawable">@drawable/text_cursor</item> 
</style> 

appThemeにおいて:使用する場合アンドロイド:editTextStyle、次いでtextCursorColorが適用されないであろう。だから私は "アンドロイド:"を削除する必要があります

textColorを使用する場合は、コンパイルエラーが発生しますが、attrと一致するリソースが見つかりません。この場合、「android:」を追加する必要があります。

使用するルールはありますか?または、私は "android:"を追加するか試してみる必要がありますか?

答えて

0

使用するルールはありますか?または、私は "android:"を追加するか試してみる必要がありますか?

attrsstyleable

styleableでは、android:editTextStyledefined as the Default EditText styleで、これらの値のすべてを定義するのAndroid SDKの一部属性があります。

そしてattrsで、it also says the same thingが、あなたは/それらのビュー/テーマ用に定義されたカスタム属性のためのソースコードに掘ることを喜んでいる場合を除きandroid:プレフィックス

1が動作するかどうかはせず、試行錯誤のようですスタイル。アンドロイドなし一方アンドロイド特異的であるものである:ある:(つまりandroid:がベースSDKで定義されている)

色について、すなわちTextAppearance properties

+0

で定義されたカスタム属性を説明いただきありがとうございます。 –

0

商品名「アンドロイド」に見られますあなたが継承しているテーマやスタイルで定義されたカスタム属性。例えば

「searchViewStyle」「ThemeOverlay.AppCompat.Light」

関連する問題