我正在尝试做以下事情.创建一个新的Fragement B(菜单),从右侧滑入,我想移动(不隐藏或替换!)已经显示的片段A到左边.
我从片段B获得了交易,但片段A根本没有改变他的位置.好像,我的FragmentManager不知道片段A存在(片段A不是动态添加的,它是用XML定义的).
> main_screen_layout-xml
<RelativeLayout //...
android:id="@+id/main_screen"
tools:context=".MainActivity"
<fragment
android:id="@+id/map_screen"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.google.android.gms.maps.SupportMapFragment" >
</fragment>
> FragmentTransaction
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.add(R.id.main_screen, new MenuFragment(), MENU_FRAGMENT); //adding Fragment B
ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left_cut);
ft.addToBackStack(null);
ft.commit();
片段A存在于FragementManager中,我可以隐藏它,但这不是我的目标
Fragment fragmentA = fragmentManager.findFragmentById(R.id.map_screen);
ft.hide(fragmentA); //hide FragmentA
我究竟做错了什么?
一些说明:
>我正在使用支持库(android.support.v4.app.FragmentManager ..),但在API 17上进行测试
>如前所述,我没有专门向FragmentManager声明FragmentA(尝试过,但它说Fragment已经存在)
>片段A(在XML中可以看到)来自SupportMapFragment类的谷歌地图
>动画XML正在运行,这就是我没有发布它的原因
最佳答案 我不确定这是否正是您正在寻找的,但请查看这个
Sliding Menu库…它允许一个人在移动中心内容片段时从左侧或右侧滑动片段.