fragment 使用

为一个activity添加一fragment 

有两种方法,一种是直接使用指定的fragment 为加载.另一种是使用容器为添加,为其指定一个root,这个到时候直接替换 

这个两种都需要FragmentTransaction来管理fragment和操作

第一种方法的操作:使用getFragmentManager().findFragmentById(R.id.fragment1)); 并用commit()来提交;如  

<LinearLayout android:orientation="horizontal" android:padding="4dip"
        android:gravity="center_vertical" android:layout_weight="1"
        android:layout_width="match_parent" android:layout_height="wrap_content">


        <Button android:id="@+id/frag1hide"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:text="Hide" />


        <fragment android:name="com.example.android.apis.app.FragmentHideShow$FirstFragment"         //FragmentHideShow为自己 定义在

                android:id="@+id/fragment1" android:layout_weight="1"
                android:layout_width="0px" android:layout_height="wrap_content" />


    </LinearLayout>

如需要添加动画效果则            

 1. getFragmentManager().setCustomAnimations(android.R.animator.fade_in,
                        android.R.animator.fade_out);
                if (fragment.isHidden()) {
                    ft.show(fragment);
                    button.setText("Hide");
                } else {
                    ft.hide(fragment);
                    button.setText("Show");
                }
                ft.commit();

2.   ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);

//Select a standard transition animation for this transaction. May be one of TRANSIT_NONE, TRANSIT_FRAGMENT_OPEN, or TRANSIT_FRAGMENT_CLOSE

对于第二种则:     FragmentTransaction ft = getFragmentManager().beginTransaction();
            DialogFragment newFragment = MyDialogFragment.newInstance();
            ft.add(R.id.embedded, newFragment);
            ft.commit();

其中R.id.embedded 为容器的   

<FrameLayout
            android:id="@+id/embedded"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
 />


若要添加多个fragment 在一个容器里,则需要要

        FragmentTransaction ft = getFragmentManager().beginTransaction();
      
        ft.setCustomAnimations(R.animator.fragment_slide_left_enter,
                R.animator.fragment_slide_left_exit,
                R.animator.fragment_slide_right_enter,
                R.animator.fragment_slide_right_exit);
        ft.replace(R.id.simple_fragment, newFragment);
        ft.addToBackStack(null);
        ft.commit();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值