5

में विभिन्न colorControlActivated शैलियों यह मेरा एप्लिकेशन विषय है:एंड्रॉयड

<style name="BaseTheme" parent="Theme.AppCompat.Light"> 
    ... 
    <item name="colorControlActivated">@color/default_orange</item> 
    ... 
</style> 
... 
<style name="Switch" parent="Material.Widget.Switch"> 
    <item name="colorControlActivated">@color/default_green</item> 
</style> 

और अगर मैं स्विच शैली का उपयोग करें:

<com.rey.material.widget.Switch 
    style="@style/Switch" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:checked="false"/> 

colorControlActivated इस्तेमाल किया यह Basetheme अंदर से एक है (नारंगी) के बजाय स्विच करें (हरा)।
ऐसा क्यों हो रहा है? क्या अलग-अलग दृश्यों के लिए मेरे पास अलग-अलग colorControlActivated नहीं हो सकता है?

धन्यवाद।

+1

क्रिस बेन्स का लेख [थीम बनाम स्टाइल] (https://chris.banes.me/2014/11/12/theme-vs-style/) पर पढ़ें यह समझने के लिए कि यह क्यों काम नहीं करता है और कैसे प्राप्त किया जाए इच्छित प्रभाव। – alanv

+0

अच्छा लेख, मैंने क्रिस उदाहरण का पालन किया है और "एंड्रॉइड: थीम" के साथ "स्टाइल" को बदल दिया है, लेकिन अभी भी काम नहीं करता है:/ – GuilhE

+0

हाय @ गुइले, क्या आपको कभी इसे हल करना पड़ा? मैं अभी ठीक उसी स्थान पर हूं – Nemesis

उत्तर

4

मुख्य मुद्दा यह है कि गतिविधि के विषय में विशेषता colorControlActivated किसी भी कस्टम शैली में उस विशेषता को वरीयता देता है जिसे आप परिभाषित करते हैं और विशिष्ट विचारों पर लागू होते हैं।

समाधान (और यह समाधान एक ही विषय में सभी तत्वों के लिए विशेषता को ओवरराइड करता है) एक नया विषय बनाने के लिए और उस विषय को मैनिफेस्ट में अपनी गतिविधि पर लागू करें। यह विषय आपकी मुख्य थीम से प्राप्त हो सकता है और आपको केवल वही गुणों को ओवरराइड कर सकता है।

विषयों:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- items--> 
    <item name="colorControlActivated">@android:color/white</item> 
    <!-- items--> 
</style> 

<style name="lightAppTheme" parent="AppTheme" > 
    <item name="colorControlActivated">@color/colorPrimary</item> 
</style> 

प्रकट:

<application 
    android:name=".application.appname" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" 
     android:theme="@style/lightAppTheme" 
     android:screenOrientation="portrait"></activity> 
</application> 

मुझे आशा है कि यह किसी को भी है कि इस में आता है, क्योंकि यह मुझे कुछ घंटे लगे यह काम कर पाने में मदद करता है।

विभिन्न गुण colorControlActivated उपयोग करने के लिए एक ही गतिविधि में विभिन्न तत्वों बनाने के लिए, इस answer में जाते हैं।