fragment 动态添加,以及防止穿透

FragmentTransaction ft = getChildFragmentManager().beginTransaction();
SpeciesDialogFragment dialogFragment = new SpeciesDialogFragment();

 Bundle bundle = new Bundle();
 bundle.putString("familyID",familyID);
 bundle.putString("familyName",familyName);
 dialogFragment.setArguments(bundle);
 ft.replace(R.id.fragment_replace,dialogFragment);
// ft.setCustomAnimations(width,heigh,R.style.animal_dialog_anim);

 ft.commit();
getChildFragmentManager().executePendingTransactions();//防止穿透


@Override
public View onCreateView(LayoutInflater inflater,  ViewGroup container, Bundle savedInstanceState) {
    if (mRootView == null) {
        mRootView = inflater.inflate(R.layout.fragment_species_dialog, container, false);
    }
    mRootView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return true;//防止穿透 
        }
    });










  
  
FragmentTransaction ft2 = getFragmentManager().beginTransaction(); ft2.replace(R.id.searoot_frame, new FragmentSeaGateStoryBookView()); ft2.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft2.addToBackStack(null); ft2.commit();
添加的时候是楼上说的,回退的时候调用
getSupportFragmentManager().popBackStack();//suport.v4包

或getFragmentManager().popBackStack();




自定义转场动画

自定义转场动画是通过setCustomAnimations()方法,因为Fragment添加时可以指定加入到Back Stack中,所以转场动画有添加、移除、从Back stack中pop出来,还有进入四种情况。


  注意setCustomAnimations()方法必须在add、remove、replace调用之前被设置,否则不起作用。
 fragmentTransaction.setCustomAnimations(
                R.animator.fragment_slide_left_enter,
                R.animator.fragment_slide_right_exit);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值