рдЬрд╛рджреВ рдХреЗ рдмрд┐рдирд╛ Android рд╡рд┐рд╖рдпреЛрдВ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВред рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕реНрд╡рд┐рдЪрдХреЙрдо рдХреЗ рд╕рд╛рде рдЦрд╛рдирд╛ рдмрдирд╛рдирд╛ рд╣реИ


рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╕реНрдЯрдо рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рд╕реНрддрд░ рдкрд░ рд╡рд┐рд╖рдпреЛрдВ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджреЗрдЦрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдЖрдЗрдП рдПрдХ рдорд╛рдирдХ рдпреВрдЖрдИ рддрддреНрд╡ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрд╡рд┐рдЪрдХреЙрдо рдореЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рджреЗрдЦреЗрдВред

рд╕рд╛рдордЧреНрд░реА


рдкрд░рд┐рдЪрдп
рд╕реНрд╡рд┐рдЪ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдирдИ рд╢реИрд▓реА
рд▓реЗрдЖрдЙрдЯ рд╢реИрд▓реА
рд╡рд┐рд╖рдп рдореЗрдВ рд╢реИрд▓реАред рд╡рд┐рд╖рдп рдХреЛ рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред
рд╡рд┐рд╖рдп рдореЗрдВ рд╢реИрд▓реАред рдереАрдо рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдиреНрдп рджреГрд╢реНрдп

рдкрд░рд┐рдЪрдп


рд╣рдореЗрд╢рд╛ рдорд╛рдирдХ UI рддрддреНрд╡ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбрд┐рдЬрд╝рд╛рдЗрди рдбрд┐рдЬрд╛рдЗрдирд░ рдкрд░ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рд╕реНрд╡рд┐рдЪрдХреЙрдореИрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрддреНрд╡ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдПред

рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:

  • SwitchCompat рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЦреБрдж рдХреА рд╢реИрд▓реА рдмрдирд╛рдПрдБред
  • рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ SwitchCompat рд╢реИрд▓реА рд╕реЗрдЯ рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SwitchCompat рд╢реИрд▓реА рдирд╛рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:

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

рд╕реНрд╡рд┐рдЪрдХреЙрдо рдХреЗ рд▓рд┐рдП рдирдИ рд╢реИрд▓реА




рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ, рдПрдХ рдирдпрд╛ MySwitchStyle рд╕реНрдЯрд╛рдЗрд▓ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕рдореЗрдВ рдкреИрд░реЗрдВрдЯ рд╕реЗрдЯ рдХрд░рдХреЗ Widget.AppCompat.CompoundButton.Switch рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░реЗрдВред рдЖрдкрдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╣рдо рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред

<style name="MySwitchStyle" parent = "Widget.AppCompat.CompoundButton.Switch"> </style> 

рдХреБрдЫ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдЧреБрдг рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╣рдо рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреЛрдб рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд░рд╣реЗ рдереЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ R.styleable.SwitchCompat_android_thumb)ред рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рднрд╛рдЧ рдХреЛ рдбрд┐рдХреЛрдб рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдХреЛрдИ рд╕рдВрджреЗрд╣ рди рд╣реЛред рдмрд╛рдХреА рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдХреЛрдб рдореЗрдВ
Xml рдореЗрдВ
SwitchCompat_android_thumb
Android: рдЕрдВрдЧреВрдард╛
SwitchCompat_thumbTint
thumbTint
SwitchCompat_track
рдЯреНрд░реИрдХ
SwitchCompat_trackTint
trackTint

  • рдПрдВрдбреНрд░реЙрдЗрдб: рдердВрдм - рд╕реНрд╡рд┐рдЪрдХреЙрдореИрдЯ рдХреЗ рдореВрд╡рд┐рдВрдЧ рдкрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди
  • рдЯреНрд░реИрдХ - рд╕реНрд╡рд┐рдЪрдХреЙрдордкреЗрдЯ рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди
  • 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> <!--    switchStyle --> <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() } } } 

  1. SetTheme рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ рдереАрдо рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рд╡рд┐рдзрд┐ рдХреЛ super.onCreate (saveInstanceState) рд╕реЗ рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред OnCreate рдореЗрдВ, рд╣рдо рдЯреБрдХрдбрд╝реЗ (рдЬрдм рд╡реЗ рд╣реЛрддреЗ рд╣реИрдВ) рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред
  2. рд╡рд┐рд╖рдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВред
  3. рд╣рдо рдПрдХ рд╢реНрд░реЛрддрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрд╡рд┐рдЪ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рдереАрдо рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рд░реАрдХреНрд░рд┐рдПрдЯ () рд╕рдХреНрд░рд┐рдпрдг рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдо



рдмрд╛рдХреА рдХреЛрдб
 <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/themes

developer.android.com/reference/android/support/v7/widget/SwitchCompat.html#xml-attributes

рдкреБрдирд╢реНрдЪ

рд▓реЗрдЦ рд╕рдВрдкреВрд░реНрдг рд╕рдВрджрд░реНрдн рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрд╛рдирдмреВрдЭрдХрд░ рдХреЛрдб рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ - рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдлрд┐рд░ рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдорд╛рдирдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi456178/


All Articles