33. Use the system resources
res/layout/main.xml
res/layout-large/main_two_panes.xml
res/layout-sw600dp/main_two_panes.xml
Multi-screen UI
Default>= 7"
>= 600dp
34. Avoid file duplication with aliases
res/layout/main.xml
res/layout/main_two_panes.xml
res/values-large/layout.xml
res/values-sw600dp/layout.xml
Multi-screen UI
Define the 2 layouts
on the default folder
Define aliases using
the filters
35. Avoid file duplication with aliases
<resources>
<item name="main" type="layout">
@layout/main_two_panes
</item>
</resources>
Multi-screen UI
Override main by main_two_panes
for large and sw600dp screens
36. Fork the code
Multi-screen UI
res/values/bools.xml
res/values-large/bools.xml
res/values-sw600dp/bools.xml
<resources>
<bool name="isTwoPanes">
true|false
</bool>
</resources>
true or false:
explicite definition
Boolean values dealing
with the filters
37. Fork the code
boolean isTwoPanes = res.getBoolean(R.bool.isTwoPanes);
if (isTwoPanes)
// launch a tablet activity
else
// launch a phone activity
Multi-screen UI
We fork the code based on
the isTwoPanes value