处理多个视图的操作

时间:2015-07-06 05:55:58

标签: android

我有一个活动,它有多个UI面板(你可以把它们视为android中的视图),这些面板默认是不可见的。

现在,当用户触发action1时,会显示PanelA,当触发action2时,PanelB会显示(在屏幕的不同位置)。

目前可以看到PanelAPanelB,现在当用户点击后退菜单时,PanelB应该会消失,PanelA会在后面消失菜单了。

首先,我使用View来保存不同的面板,但是我发现很难保持状态编组,例如,PanelA和{{1}之间的活动会有所不同}}

然后我发现了这个片段,但经过我的尝试和测试后,我发现PanelB无法应用于我的案例,因为addTobackStack()PanelA处于不同的状态位置,android默认无法保存状态。

所以我想知道我的要求是否有其他解决方案?

1 个答案:

答案 0 :(得分:0)

您需要在onBackPressed()的{​​{1}}方法中手动处理此方案。

例如 -

Activity

当打开panelB时,它将仅关闭panelB而不会执行任何其他操作。对于panelA也是如此,如果它打开,当两个面板都关闭时,它将像正常一样退出应用程序。

我强烈建议您在此处使用DialogFragments,因为您可以随时调用@Override public void onBackPressed() { if (panelB.isOpened()) { panelB.close() } else if (panelA.isOpened()) { panelA.close() } else { super.onBackPressed(); } } show(),他们可以很好地处理自定义视图。

希望它有所帮助。