Link to issue: https://code.google.com/p/android/issues/detail?id=230604
On Thursday, March 9, 2017 at 5:25:50 PM UTC-5, [email protected] wrote: > > Hi, > > I encountered this issue and for some reason, decided to clone the repo > and try to investigate it myself. I saw that it was critical priority and > already triaged, which means it's on somebody's task list already. > > I have landed on a fix and was wondering if I could submit a pull request > if it's still not fixed internally. > > Basically, this issue is caused because parentTag logic works by adding a > "synthetic" tagName to the merge layout. > > The proposed fix is to adding the synthetic tag only when this layout is > the root tag in the root layout, and not for a layout being included that > contains merge tag with a parentTag attribute (through custom view or > include tag) > > In LayoutLibCallbackImpl getParser() method, I check if the psiFile name > matches myRender.psiFile name. If it doesn't, that means we're actually > rendering the psiFile which is included inside another layout file. If it's > the latter, I created a constructor in LayoutPsiPullParser class to pass a > boolean "isIncludedLayout", and a corresponding static create() method. > This boolean is then passed on to createSnapshot(), and then to > createSnapshotForMerge(). > > In createSnapshotForMerge, if parentTag == null or isIncludedLayout is > true, we return the root TagSnapshot instead of adding the synthetic tag. > > Does this seem like a viable approach? If it does, can I submit a PR or > has this issue been internally resolved? > > > > Thanks > -- You received this message because you are subscribed to the Google Groups "adt-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
