Android Honeycomb:布局问题-隐藏/显示FrameLayouts

|| 在我的ѭ0中,我有一个布局,其中包含3个ѭ1one,一个在顶部,一个在左侧,一个在“中心”。 现在,有时我只想显示其中的一两个。 Atm我这样做是这样的:
FrameLayout frame = (FrameLayout) findViewById(R.id.framelayout_menu_left);
frame.setVisibility(...);

frame = (FrameLayout) findViewById(R.id.framelayout_content);
frame.setVisibility(...);

frame = (FrameLayout) findViewById(R.id.framelayout_menu_top);
frame.setVisibility(...);
但是,这可能会得到非常丑陋的结果,例如当我切换\“ content \”
Fragment
并隐藏顶部和/或左侧
FrameLayout
时。当“内容”ѭ3跳到顶部和/或左侧时,所有操作开始闪烁,然后才替换。 另外,我显然不能导航回其他设置,那么还有其他方法可以做到这一点吗? 亲切的问候, 海蜇 编辑: 也许画些小图可以使我的问题更清楚... A显示包含3个不同片段的3个FrameLayouts的布局。每种颜色代表一个不同的片段。 现在我要做的是从A切换到D。 我这样做是通过ѭ6将蓝色片段替换为黄色片段。 但是,这仍然保持其他框架可见,因此我通过上面的代码将其隐藏。 现在,在commit()之前调用了called7ѭ,因此在B和C中,蓝色的片段“跳”到左侧和顶部,仅在之后(在D中)被黄色的Fragment替换。这会产生令人讨厌的闪烁。 作为一种解决方法,我现在在事务处理之前隐藏所有三个FrameLayouts,并在事务处理完成后重新显示我需要的三个。但是仍然存在我无法通过“后退”按钮返回的问题,因为这不是真正的交易。     
已邀请:
        我有两个建议。首先,如果您既添加了片段过渡效果,又在交易后进行了可见性更改,则可能会大大减少很多闪烁效果
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
其次,我只是放弃了让系统为我管理片段堆栈的方法-看来这仅适用于简单事务。覆盖onBackPressed并在那里执行您自己的逻辑。 -兰迪     

要回复问题请先登录注册