在android中更新片段

时间:2013-01-18 16:17:46

标签: android android-fragments updates android-listfragment android-fragmentactivity

说我有几个片段显示和做某些事情。现在,根据某些事件,我想更改片段的屏幕(或内容)。 [编辑]

例如。

我的第一个布局布局A有一个列表视图。而另一种布局,布局B有一个表格视图。我目前正在片段中显示布局A.在列表项单击时,我想在同一片段中显示布局B.

这是怎么做到的?

感谢。

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,我就会这样做。

我假设您已经为列表片段(片段A)和视图片段(片段B)创建了片段类。

我们可以使用fragmentManager在布局视图中交换片段。

//grab fragmentManager, this will allow us to switch out fragments
FragmentManager fragManager = getFragmentManager();
FragmentTransaction fragTransaction = fragManager.beginTransaction();

//first remove the current fragment
fragTransaction.remove(fragManager.findFragmentById(R.id.layout_view));

//replace the current FragmentA with FragmentB
fragTransaction.replace(R.id.layout_view, new FragmentB());

//add to backstack if you want the android back button to work properly
fragTransaction.addToBackStack(null);

//and lastly, we commit the changes to the fragmentManger's transaction
fragTransaction.commit();

希望这有帮助。

答案 1 :(得分:1)

  

我的第一个布局布局A有一个列表视图。和另一种布局,布局   B有桌子视图。我目前正在显示布局A.   分段。在列表项单击,我想在同一显示布局B.   片段。

     

这是怎么做到的?

您可以使用新的嵌套片段API(可通过兼容包和普通片段API 16+获得)。而不是包含Fragment的当前ListView(并且您将用表替换),您将拥有一个包装器Fragment,其视图为一个FrameLayout { {1}}的内容。

然后,您将创建两个包含ListView并包含表格布局的片段。最初,您将基于列表的片段添加到包装器片段以获取开始布局,在项目单击事件上,您将使用getChildFragmentManager()将基于列表的片段替换为基于表的片段(所有在包装器中)片段)。