Android Fragment相互重叠并显示透明视图

时间:2015-11-30 12:19:07

标签: android listview android-fragments fragment-backstack

我有一个带有片段容器布局的活动,在该布局中我加载了一个包含listview的片段A(listview从web加载数据)。现在点击listview项目我想显示详细视图。为此,我正在加载另一个片段B,它是细节片段。现在我首先使用

FragmentTransaction ft = ((FragmentActivity) context).getSupportFragmentManager().beginTransaction();
                    ft.replace(R.id.fragmentsContainerLayout, new ScheduleDetailsFragment());
                    ft.addToBackStack(null);
                    ft.commit();

但是使用replace删除包含listview的前一个片段A,并在再次按下它时重新加载片段A的onCreateView方法及其listview数据。我想阻止它在backpress上再次加载片段A(或发送对webserver的调用)。我想维护片段A状态及其列表视图滚动位置。要做到这一点,我使用了第二个选项

FragmentTransaction ft = ((FragmentActivity) context).getSupportFragmentManager().beginTransaction();
                        ft.add(R.id.fragmentsContainerLayout, new ScheduleDetailsFragment());
                        ft.addToBackStack(null);
                        ft.commit();

如果我使用add(),则片段B加载在片段A和片段A的顶部仍然可见。它显示两个片段彼此重叠并且透明。我还遇到了一个使用show()和hide()方法的解决方案。但我不认为这是实现这一目标的有效方法。有人能提出有效的解决方案吗?

0 个答案:

没有答案