рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╕реНрдЯрдо рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рд╕реНрддрд░ рдкрд░ рд╡рд┐рд╖рдпреЛрдВ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджреЗрдЦрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдЖрдЗрдП рдПрдХ рдорд╛рдирдХ рдпреВрдЖрдИ рддрддреНрд╡ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрд╡рд┐рдЪрдХреЙрдо рдореЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рджреЗрдЦреЗрдВред
рд╕рд╛рдордЧреНрд░реА
рдкрд░рд┐рдЪрдпрд╕реНрд╡рд┐рдЪ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдирдИ рд╢реИрд▓реАрд▓реЗрдЖрдЙрдЯ рд╢реИрд▓реАрд╡рд┐рд╖рдп рдореЗрдВ рд╢реИрд▓реАред рд╡рд┐рд╖рдп рдХреЛ рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИредрд╡рд┐рд╖рдп рдореЗрдВ рд╢реИрд▓реАред рдереАрдо рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИредрдЕрдиреНрдп рджреГрд╢реНрдпрдкрд░рд┐рдЪрдп
рд╣рдореЗрд╢рд╛ рдорд╛рдирдХ UI рддрддреНрд╡ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбрд┐рдЬрд╝рд╛рдЗрди рдбрд┐рдЬрд╛рдЗрдирд░ рдкрд░ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рд╕реНрд╡рд┐рдЪрдХреЙрдореИрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрддреНрд╡ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдПред
рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:- SwitchCompat рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЦреБрдж рдХреА рд╢реИрд▓реА рдмрдирд╛рдПрдБред
- рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ SwitchCompat рд╢реИрд▓реА рд╕реЗрдЯ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SwitchCompat рд╢реИрд▓реА рдирд╛рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:- рд╢реИрд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
- рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдП рдЧрдП рд╕реНрд╡рд┐рдЪ рд╕реНрдЯрд╛рдЗрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдереАрдо рдмрдирд╛рдПрдВ рдФрд░ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдкреНрд░рдХрдЯ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред рдпрд╣ рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рдХрд╛ рд╕реНрд╡рд░реВрдк рдмрджрд▓ рджреЗрдЧрд╛ред
- рд╕рдХреНрд░рд┐рдпрдг рдХреЛрдб рдореЗрдВ рд╡рд┐рд╖рдп рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рднреА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЗрд╕реЗ рдордХреНрдЦреА рдкрд░ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрд╡рд┐рдЪрдХреЙрдо рдХреЗ рд▓рд┐рдП рдирдИ рд╢реИрд▓реА

рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ, рдПрдХ рдирдпрд╛ MySwitchStyle рд╕реНрдЯрд╛рдЗрд▓ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕рдореЗрдВ рдкреИрд░реЗрдВрдЯ рд╕реЗрдЯ рдХрд░рдХреЗ Widget.AppCompat.CompoundButton.Switch рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░реЗрдВред рдЖрдкрдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╣рдо рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред
<style name="MySwitchStyle" parent = "Widget.AppCompat.CompoundButton.Switch"> </style>
рдХреБрдЫ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдЧреБрдг рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ
редрдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╣рдо рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреЛрдб рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд░рд╣реЗ рдереЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ R.styleable.SwitchCompat_android_thumb)ред рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рднрд╛рдЧ рдХреЛ рдбрд┐рдХреЛрдб рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдХреЛрдИ рд╕рдВрджреЗрд╣ рди рд╣реЛред рдмрд╛рдХреА рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред
- рдПрдВрдбреНрд░реЙрдЗрдб: рдердВрдм - рд╕реНрд╡рд┐рдЪрдХреЙрдореИрдЯ рдХреЗ рдореВрд╡рд┐рдВрдЧ рдкрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди
- рдЯреНрд░реИрдХ - рд╕реНрд╡рд┐рдЪрдХреЙрдордкреЗрдЯ рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди
- thumbTint - рдЖрдкрдХреЛ рд╕реНрд╡рд┐рдЪрдХреЙрдореИрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рд░рдВрдЧреЛрдВ рдореЗрдВ рдЪрд▓рддреА рднрд╛рдЧ рдХреЛ рдкреЗрдВрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
- TrackTint - рдЖрдкрдХреЛ рд╕реНрд╡рд┐рдЪрдХреЙрдореИрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рд░рдВрдЧреЛрдВ рдореЗрдВ рд╕реНрдерд┐рд░ рднрд╛рдЧ рдХреЛ рд░рдВрдЧрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдВрдЧреВрдареЗ рдХрд╛ рд░рдВрдЧ (рд╕рд░реНрдХрд▓) рдмрджрд▓реЗрдВ - рдЗрд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░ рдирд╛рд░рдВрдЧреА рд╣реЛрдиреЗ рджреЗрдВ рдФрд░ рдЬрдм рдпрд╣ рдмрдВрдж рд╣реЛ рддреЛ рд╣рд░рд╛ рд╣реЛред рдмрджрд╕реВрд░рдд, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗред
рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд░рдВрдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдЪрдпрдирдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдлрд╝рд╛рдЗрд▓ selector_switch_thumb.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:color = "@android:color/holo_orange_dark"/> <item android:color="@android:color/holo_green_light"/> </selector>
рдЕрдм рдердВрдм рд╕реНрдЯрд╛рдЗрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╣рдорд╛рд░реА рд╢реИрд▓реА рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВред
<style name="MySwitchStyle" parent = "Widget.AppCompat.CompoundButton.Switch"> <item name="thumbTint">@color/selector_switch_thumb</item> </style>
рдЕрдм рд╕рднреА SwitchCompat, рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рддрд░рд╣ MySwitchStyle рд╕реНрдЯрд╛рдЗрд▓ рдорд┐рд▓рд╛ рд╣реИ, рдПрдХ рдирдП рддрд░реАрдХреЗ рд╕реЗ рджрд┐рдЦреЗрдЧрд╛ред

рд▓реЗрдЖрдЙрдЯ рд╢реИрд▓реА
рд╕рдмрд╕реЗ рддреБрдЪреНрдЫ рдФрд░ рдЕрдирдореНрдп рддрд░реАрдХрд╛ред
- рд▓реЗрдЖрдЙрдЯ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдкрд░ рд╢реИрд▓реА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред
- рд╣рдо рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
- рд╣рд░ рдмрд╛рд░ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдФрд░ рд╣рдо рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред
<androidx.appcompat.widget.SwitchCompat android:text="Themed switch" style="@style/MySwitchStyle" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
рд╡рд┐рд╖рдп рдореЗрдВ рд╢реИрд▓реАред рд╡рд┐рд╖рдп рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реМрдВрдкрд╛ рдЧрдпрд╛
рдПрдХ AppTheme рд╡рд┐рд╖рдп рдмрдирд╛рдПрдБ рдФрд░ switchStyle рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВред рдореВрд▓реНрдп рд╣рдорд╛рд░реА MySwitchStyle рд╢реИрд▓реА рд╣реИред
<resources> <style name="CustomTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="switchStyle">@style/MySwitchStyle</item> </style> </resources>
рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рдХреЛ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/CustomTheme"> </application>
рдпрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП
<activity android:name=".MainActivity" android:theme="@style/CustomTheme"> </activity>
рдЕрдм рд╕рднреА SwitchCompat рдореЗрдВ рдПрдХ рдирдпрд╛ рд░реВрдк рд╣реЛрдЧрд╛ред рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВред
- рдкреЗрд╢реЗрд╡рд░реЛрдВ - рд╣рдо рддреБрд░рдВрдд рдкреВрд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЙрдкрд╕реНрдерд┐рддрд┐ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
- рд╡рд┐рдкрдХреНрд╖ - рдордХреНрдЦреА рдкрд░ рдЖрдк рдЗрд╕реЗ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддреЗред
рд╡рд┐рд╖рдп рдореЗрдВ рд╢реИрд▓реАред рдереАрдо рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ
рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕рдХреНрд░рд┐рдпрдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдХреНрд░рд┐рдпрдг рд╡рд┐рдзрд┐ setTheme (themeResId) рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдЗрдП рд╕реНрд╡рд┐рдЪ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдереАрдо рдмрджрд▓реЗрдВред
private const val KEY_CUSTOM_THEME_CHECKED = "KEY_CUSTOM_THEME_CHECKED" class MainActivity : AppCompatActivity() { private val preference by lazy { PreferenceManager.getDefaultSharedPreferences(this) } override fun onCreate(savedInstanceState: Bundle?) { val isCustomThemeChecked = preference.getBoolean( KEY_CUSTOM_THEME_CHECKED, true ) if (isCustomThemeChecked) { setTheme(R.style.CustomTheme) } else { setTheme(R.style.StandardTheme) } super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) customThemeCheckbox.isChecked = isCustomThemeChecked customThemeCheckbox.setOnCheckedChangeListener { _, isChecked -> preference.edit() .putBoolean(KEY_CUSTOM_THEME_CHECKED, isChecked) .apply() recreate() } } }
- SetTheme рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ рдереАрдо рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рд╡рд┐рдзрд┐ рдХреЛ super.onCreate (saveInstanceState) рд╕реЗ рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред OnCreate рдореЗрдВ, рд╣рдо рдЯреБрдХрдбрд╝реЗ (рдЬрдм рд╡реЗ рд╣реЛрддреЗ рд╣реИрдВ) рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред
- рд╡рд┐рд╖рдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВред
- рд╣рдо рдПрдХ рд╢реНрд░реЛрддрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрд╡рд┐рдЪ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рдереАрдо рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рд░реАрдХреНрд░рд┐рдПрдЯ () рд╕рдХреНрд░рд┐рдпрдг рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо

рдмрд╛рдХреА рдХреЛрдб <resources> <style name="CustomTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="switchStyle">@style/MySwitchStyle</item> </style> <style name="StandardTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="MySwitchStyle" parent="Widget.AppCompat.CompoundButton.Switch"> <item name="thumbTint">@color/selector_switch_thumb</item> </style> </resources>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" android:orientation="vertical"> <CheckBox android:text="CustomTheme" android:layout_width="match_parent" android:layout_height="wrap_content" android:saveEnabled="false" android:id="@+id/customThemeCheckbox"/> <androidx.appcompat.widget.SwitchCompat android:text="Themed switch" android:layout_marginTop="56dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/themedSwitch"/> </LinearLayout>
рдЕрдиреНрдп рджреГрд╢реНрдп
рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП SwithView рдХреЗ рд▓рд┐рдП рд╢реИрд▓реА рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕реНрд╡рд┐рдЪ рд╕реНрдЯрд╛рдЗрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛, рд╣рдо рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреНрдп рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдореМрдЬреВрдж рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
- editTextStyle
- checkboxStyle
- radioButtonStyle
рдЙрдирдХреА рддрд▓рд╛рд╢ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдореИрдВ рд╕рд┐рд░реНрдл рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд░реЛрдд рджреЗрдЦрддрд╛ рд╣реВрдВред
рд╣рдо рд╡рд┐рд╖рдп рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, ctrl рдХреЛ рджрдмрд╛рдП рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рд╡рд┐рд╖рдп рдХреЗ рдЬрдирдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ Google рдХреЗ рд▓реЛрдЧ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рд╡рд┐рд╖рдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рд╣реИ рдФрд░ рдХрд┐рд╕ рд╢реИрд▓реА рд╕реЗ рд╣рдо рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдмреЗрд╕ рд╕реЗ рдПрдХ рдЯреБрдХрдбрд╝рд╛ Base.V7.Theme.AppCompat.Lightред
<item name="editTextStyle">@style/Widget.AppCompat.EditText</item> <item name="checkboxStyle">@style/Widget.AppCompat.CompoundButton.CheckBox</item> <item name="radioButtonStyle"> @style/Widget.AppCompat.CompoundButton.RadioButton </item> <item name="buttonStyle">@style/Widget.AppCompat.Button</item>
рд╕рд╛рдзрди
developer.android.com/guide/topics/ui/look-and-feel/themesdeveloper.android.com/reference/android/support/v7/widget/SwitchCompat.html#xml-attributesрдкреБрдирд╢реНрдЪрд▓реЗрдЦ рд╕рдВрдкреВрд░реНрдг рд╕рдВрджрд░реНрдн рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрд╛рдирдмреВрдЭрдХрд░ рдХреЛрдб рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ - рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдлрд┐рд░ рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдорд╛рдирдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред