[go: nahoru, domu]

blob: aff5d640e65d4d3319deade102c21c35c6ea332c [file] [log] [blame]
Chris Banes3795dec2014-07-28 10:46:20 +01001==========================================
2
3 appcompat themes structure
4
5==========================================
6
7The themes structure in appcompat is complex since we
8need to deal with attributes and styles which are available
9at differing platform versions.
10
11The structure is as so:
12
13<- denote inherits from.
14
15---------------------
16Fourth level themes (Platform)
17---------------------
18These are the base themes and allow us to switch out the framework base
19theme automatically. These should setup the framework theme ready so
20that they are the theme is mostly the same on all platform versions.
21
22Example:
23values-v11/
24Platform.AppCompat <- android:Theme.Holo
25
26
27---------------------
28Third level
29---------------------
30Platform specific themes which inherit from the previous platform version. These allows us
31to build up the theme across platforms. These themes do most of the work.
32
33Example:
34(various) values/ values-v21/
35Platform.AppCompat <- Base.V7.Theme.AppCompat <- Base.V21.Theme.AppCompat
36
37
38---------------------
39Second level
40---------------------
41There are the themes which are pointers to the correct third level theme.
42They can also be used to set attributes for that specific platform (and platforms up until the
43next declaration).
44
45Because of this, every time there is a third level theme set, there should be a second level
46theme pointing to it. This is so that devices do not use themes from newer and unavailable
47platforms.
48
49Names: Theme.Base.AppCompat, Theme.Base.AppCompat.Light and Theme.Base.AppCompat.Light.DarkActionBar
50
51Example:
52values-v21/
53Theme.V21.Base.AppCompat <- Theme.Base.AppCompat
54
55---------------------
56Top level themes
57---------------------
58These are the themes to be used directly by developers. These inherit from
59the second level relevant second level theme below.
60
61Names: Theme.AppCompat, Theme.AppCompat.Light and Theme.AppCompat.Light.DarkActionBar
62
63Example:
64values/
65Theme.AppCompat <- Theme.Base.AppCompat