How to set a different theme to a Layout
android, android-linearlayout, styles, themes, user-interface
Solution
This is now possible by using the `android:theme` property on the view and setting it to any theme you like. Note that the child views will inherit the theme of their parent.
Problem
I've set a default theme for the whole app. It's defined in styles.xml as follows: ``` <style name="DefaultTheme" parent="@android:style/Theme.Holo.Light"> <!-- Customization here --> </style> ``` I've also defined a dark theme: ``` <style name="DarkTheme" parent="@android:style/Theme.Holo"> <!-- Customization here --> </style> ``` In the manifest it is declared the light theme as the main theme for the app: ``` <application ... android:theme="@style/DefaultTheme" > ``` Now this is working fine, but in an activity, I need to set a different theme for a single Layout. Something like this: ``` +--------------------------------------------------+ | Parent Linear layout (default theme) | | | | +------------------------------------+ +-------+ | | | | | | | | | Left linear layout | | | | | | (default theme) | | | | | | | | | | | | | | | | | | | | ·<----------- Right Linear Layout | | | | | | (Need it in dark theme) | | | | | | | | | | | | | +------------------------------------+ +-------+ | +--------------------------------------------------+ ``` In the layout xml file I'm trying to set a theme for the rightmost child LinearLayout: ``` <LinearLayout style="@style/DarkTheme"> ... ``` I'd expect this to work just fine, and to apply the dark theme to the right layout only (and its child views), but it is not working. I've tried replacing the @style with a built-in @android:style to no avail. I've tested this in the layout editor and on real device/simulator. Is it possible to apply a custom theme or style to a single layout?