fragment的使用总结

fragment用于动态显示页面,是activity的更灵活的子类。相当于Activity中嵌入”小Activity”,然后每个”小Activity”又可以拥有自己的布局。可替代tabhost分页显示。
首先,在布局中设定一个framlayout:

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

   

    tools:context="com.example.fragmenttest.MainActivity">

 

    <LinearLayout

        android:id="@+id/left_layout"

        android:layout_width="0dp"

        android:layout_weight="1"

        android:layout_height="fill_parent"

        android:orientation="vertical">

       

        <fragment

            android:id="@+id/left_fragment"

            android:name="com.example.fragmenttest.LeftFragment"

            android:layout_width="fill_parent"

            android:layout_height="fill_parent"/>

 

    </LinearLayout>

   

    <FrameLayout

        android:id="@+id/right_layout"

        android:layout_width="0dp"

        android:layout_weight="2"

        android:layout_height="fill_parent">

            

    </FrameLayout> 

</LinearLayout>

该framelayout用于实现fragment的显示,接下来可通过按键来模拟2个fragment的切换显示

rightFragment = new RightFragment();

        anotherFragment = new AnotherFragment();

       

        leftButton1.setOnClickListener(new OnClickListener() {

           

            @Override

            publicvoid onClick(View v) {

                // TODO Auto-generated method stub

                Toast.makeText(getActivity(),"left button1", Toast.LENGTH_SHORT).show();

                FragmentManager manager =getFragmentManager();

                FragmentTransaction transaction= manager.beginTransaction();

               

//              transaction.replace(R.id.right_layout,rightFragment);

//              transaction.addToBackStack(null);

                if (!rightFragment.isAdded()) {

                    transaction.add(R.id.right_layout, rightFragment);

                }

                if (anotherFragment.isVisible()) {

                    transaction.hide(anotherFragment);

                }

                transaction.show(rightFragment);

                transaction.commit();

            }

        });

       

        leftButton2.setOnClickListener(new OnClickListener() {

           

            @Override

            publicvoid onClick(View v) {

                // TODO Auto-generated method stub

                Toast.makeText(getActivity(),"left button2", Toast.LENGTH_SHORT).show();

                FragmentManager manager =getFragmentManager();

                FragmentTransaction transaction= manager.beginTransaction();

               

//              transaction.replace(R.id.right_layout,anotherFragment);

//              transaction.addToBackStack(null);

               

                if (!anotherFragment.isAdded()) {

                    transaction.add(R.id.right_layout, anotherFragment);

                }

                if (rightFragment.isVisible()) {

                    transaction.hide(rightFragment);

                }

                transaction.show(anotherFragment);

                transaction.commit();

               

            }

        });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要清空Fragment,可以使用FragmentManager的方法removeAllFragments()来实现。首先,获取FragmentManager的实例,可以使用getFragmentManager()或者getChildFragmentManager(),取决于你是在Activity还是在Fragment中操作。 在Activity中获取FragmentManager的实例,可以使用以下代码: FragmentManager fragmentManager = getFragmentManager(); 在Fragment中获取FragmentManager的实例,可以使用以下代码: FragmentManager fragmentManager = getChildFragmentManager(); 一旦获取了FragmentManager的实例,就可以调用removeAllFragments()方法来清空所有的Fragment。代码如下: fragmentManager.removeAllFragments(); 这样就能清空所有的Fragment了。同时,如果你只想清空指定的Fragment,可以使用remove()方法来移除指定的Fragment。例如,如果你有一个名为"myFragment"的Fragment,可以使用以下代码来清空它: fragmentManager.beginTransaction().remove(myFragment).commit(); 请注意,以上方法都是在Android API level 26及以上版本可用。如果你的项目的最低API level低于26,你可以考虑使用其他方法来清空Fragment,比如使用replace()方法将一个空的Fragment替换掉原有的Fragment总结起来,要在Android中清空Fragment,可以按照以下步骤进行操作: 1. 获取FragmentManager的实例,可以使用getFragmentManager()或者getChildFragmentManager()方法。 2. 使用removeAllFragments()方法清空所有Fragment,或者使用remove()方法移除指定的Fragment。 3. 如果需要,可以使用replace()方法将一个空的Fragment替换掉原有的Fragment。 :FragmentManager fragmentManager = getFragmentManager(); :FragmentManager fragmentManager = getFragmentManager(); :Android ViewPager&plus;Fragment 在Activity中获取Fragment的控件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值