在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);
答案 0 :(得分:0)
例外说明了一切。您尝试使用AddView
添加的其中一个视图已在视图层次结构中的某个位置添加为子项。因此,在将其添加到其他地方之前,必须先将其从父项中删除。
根据您发布的代码,_currentSwipableItemFrameLayout
或_currentSwipableItemReflectionFrameLayout
中的任何一方或两者都已有父母。