Problem
I want to override a layout file from android namespace, e.g. R.layout.popup_menu_item_layout
(which is referenced from code as com.android.internal.R.layout.popup_menu_item_layout
). By saying override, I assume declaring an xml
file in the project which would be prioritized over the layout that framework owns.
Note, this is just an example layout, so the question concerns to each layout that's present in sdk/platforms/android-XX/data/res/layout
directory.
What I've tried
tools:override
There's an undocumented tools:override
tag available, which overrides specific resources. See this answer for an example, which overrides values from Design Support Library, not from Android framework.
Applying tools:override="true"
to the root tag of the layout won't take effect.
XML layout references - refs.xml
As described in this post, declaring a refs.xml
file in /values/
directory with following content:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="layout" name="activity_main">@layout/activity_second</item>
</resources>
will refer to activity_second.xml
once activity_main.xml
is used. There's an answer that suggests using this technique in order to substitute Snackbar
's layout.
This also won't take effect.
Question
Is there any legitimate way to override/substitute a layout file from android package?