无法以编程方式在LinearLayout中添加两个FrameLayout对象

时间:2014-10-28 10:18:36

标签: android-layout xamarin.android

在LinearLayout对象中以编程方式添加两个FrameLayout对象时,在将第二个FrameLayout对象添加到LinearLayout对象时获得以下异常。任何人都可以提供帮助。

Java.Lang.IllegalStateException:指定的子级已有父级。您必须先在孩子的父母身上调用removeView()。

这是代码

ViewGroup.LayoutParams param = new ViewGroup.LayoutParams(
                               ViewGroup.LayoutParams.WrapContent, 
                               ViewGroup.LayoutParams.WrapContent);

MainView = new LinearLayout(_context);
MainView.LayoutParameters = new ViewGroup.LayoutParams(
                            ViewGroup.LayoutParams.MatchParent, 
                            ViewGroup.LayoutParams.MatchParent);

MainView.Orientation = Orientation.Vertical;
MainView.SetVerticalGravity(GravityFlags.Center);
MainView.SetHorizontalGravity(GravityFlags.Center);




_currentSwipableItemReflectionFrameLayout = _currentSwipableItemFrameLayout;
_currentSwipableItemReflectionFrameLayout.RotationX = 180;
_currentSwipableItemReflectionFrameLayout.Alpha = 0.3f;

MainView.AddView(_currentSwipableItemFrameLayout,param);
MainView.AddView(_currentSwipableItemReflectionFrameLayout,param);

AddView(MainView);

1 个答案:

答案 0 :(得分:0)

例外说明了一切。您尝试使用AddView添加的其中一个视图已在视图层次结构中的某个位置添加为子项。因此,在将其添加到其他地方之前,必须先将其从父项中删除。

根据您发布的代码,_currentSwipableItemFrameLayout_currentSwipableItemReflectionFrameLayout中的任何一方或两者都已有父母。