Ok, I figured it out.

When you use LayoutInflater.inflate(id, root), the return value will
be the inflated xml root if you _didn't_ provide the root, or it will
be the root if you did. To remedy the problem I was having, I simple
passed null for the root and then called mContainerLayout.addView
(mInnerLayout) and it worked. What was happen is that it was returning
the root and I thought it was the inner layout. ;)

On Jan 30, 5:39 pm, steele johnson <[email protected]> wrote:
> Hello,
> ViewFlipper doesn't help either because I still need to add the layout
> dynamically. The problem really comes down to this:
>
> mInnerLayout = (LinearLayout) layout.inflate(
>                                         R.layout.multiple_select, 
> mContainerLayout);
>
> How can I add mInnerLayout to mContainerLayout after it has been
> removed?
>
> On Jan 30, 5:02 pm, Mark Murphy <[email protected]> wrote:
>
> > steele johnson wrote:
> > > I'm trying to dynamically swap in and out various layouts to one
> > > layout container.
>
> > Option #1: go the path you are trying
>
> > Option #2: use ViewFlipper or ViewSwitcher for parent container and have
> > it handle changing the children
>
> > > I've instantiated the container layout (mContainerLayout) by finding
> > > it using the id through the maine Activity layout. This is successful.
>
> > > Next, I add the inner layout by calling:
>
> > > layoutInflater = this.getLayoutInflater();
>
> > > and then inflating the inner layout like this:
>
> > > mInnerLayout = (LinearLayout) layoutInflater .inflate(
> > >                                    R.layout.inner_layout, 
> > > mContainerLayout);
>
> > > This seems to work fine. I see the inner layout displayed in the
> > > Activity that holds the containing layout. Next, I want to swap in
> > > another inner layout, so I call:
>
> > > mContainerLayout.removeAllViews();
>
> > > and then I repeat the steps above. This is successful as well.
>
> > > The problem is when I try to swap in and out the instantiated layouts
> > > (the one that's returned from the inflate() call). When I call:
>
> > > mContainerLayout.removeAllViews();
>
> > > and then call:
>
> > > mContainerLayout.addView(mInnerLayout );
>
> > > I get a 'source not found' error.
>
> > > My question is: how can I swap the Layouts that have already been
> > > instantiated?
>
> > Try removing the single view representing the "inner layout" instead of
> > the whole view tree. In other words, use removeView() instead of
> > removeAllViews().
>
> > Personally, I typically just use ViewFlipper, so it can handle this
> > case, plus give me the option for animating the transition between child
> > views if I so choose.
>
> > --
> > Mark Murphy (a Commons Guy)http://commonsware.com
> > _The Busy Coder's Guide to Android Development_ Version 2.0 Available!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to