Android动画选项卡内容切换

Android动画选项卡内容切换,android,animation,Android,Animation,我尝试在使用ViewFlipper的android应用程序中单击选项卡时设置视图更改的动画,但问题是使用setContent添加到TabSpec的视图无法再添加到ViewFlipper,或者引发此异常: 03-03 19:12:19.082: ERROR/AndroidRuntime(229): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call r

我尝试在使用ViewFlipper的android应用程序中单击选项卡时设置视图更改的动画,但问题是使用setContent添加到TabSpec的视图无法再添加到ViewFlipper,或者引发此异常:

03-03 19:12:19.082: ERROR/AndroidRuntime(229): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
如何添加选项卡

private ArrayList<View> tabViews = new ArrayList<View>();
private ViewFlipper flipper;
....
View tabView = contentFactory.createTabContent("tab_" + labelId);
tabViews.add(tabView);

mTabHost.getTabContentView().addView(tabView);

spec.setIndicator(tabIndicator);
spec.setContent(tabView.getId());
mTabHost.addTab(spec)
我的目标是这样的效果,只有当你点击标签。我计划使用onTabChanged事件来归档

ViewFlipper.setDisplayChild(flipperViewIndexDerivedFromTabIndex)

感谢您的帮助。

在没有任何丑陋的ArrayList黑客攻击的情况下实现了此功能。关键是将我的布局xml中tabcontent的视图类型从FrameLayout更改为ViewFlipper

我现在可以将选项卡内容作为TabContentFactory对象传递

spec.setContent(contentFactory);
并通过以下方法访问onTabChanged方法中的ViewFlipper

ViewFlipper flipper = (ViewFlipper) getTabHost().getTabContentView();

之后,它只是实现逻辑来选择要翻转到的视图。这一发现来自于浏览其他安卓标签问题

使用您的解决方案,我如何实现交换机?我将xml从framelayout更改为view flipper,并设置了tab changed listener。在onCreate中,这是我添加选项卡的方式:spec=tabHost.newTabSpec(“警报”).setIndicator(tabTitle,res.getDrawable(R.drawable.alertsbtn)).setContent(intent);我还可以做些什么?通常我会在xml中定义要翻转的视图。
ViewFlipper flipper = (ViewFlipper) getTabHost().getTabContentView();