Fragment的基本使用

Fragment主要运用在App的选择框上主要分为显示和隐藏式两种

Fragment的加载也分为两种,一种是静态加载、第二种是动态加载

Fragment的静态加载思是

先创建Fragment布局

创建类继承自Fragment

重写类中必要的方法

页面布局中添加fragment标签并指定name

核心代码-创建Fragment

public class MyFragment extends Fragment {

    public MyFragment() {

        // Required empty public constructor

    }

    /**

     * 参数详解

     * fragment第一次创建用户界面时回调的方法

     * @param inflater 实体加载器,用于加载一个fragment的视图

     * @param container 表示当前fragment插入到activity中的对象

     * @param savedInstanceState  表示储存一个fragment的信息

     * @return

     */

    @Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        // Inflate the layout for this fragment

        return inflater.inflate(R.layout.fragment_my, container, false);

    }

}

核心代码-Activity布局添加fragment标签

<?xml version="1.0" encoding="utf-8"?>

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

    xmlns:app="http://schemas.android.com/apk/res-auto"

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

    android:layout_width="match_parent"

    android:gravity="center"

    android:layout_height="match_parent"

    tools:context=".MainActivity">

    <!--一定要注意的是:name属性是fragment的全限定名-->

    <fragment

        android:id="@+id/my_fragment_id"

        android:name="com.example.day004.fragment.MyFragment"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content">

    </fragment>

</LinearLayout>

Fragment的创建动态创建的思路

1:获得FragmentManager对象

 FragmentManager fragmentManager=getSupportFragmentManager();

2:开启事务FragmentTransaction transaction = fragmentManager.beginTransaction();

3:通过FragmentTransaction 调用add()、replace()方法管理fragment

4:transaction .commit();

核心代码-创建Fragment

public class MainActivity extends AppCompatActivity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        //1,创建fragment的管理对象

        FragmentManager supportFragmentManager = getSupportFragmentManager();

        //2,获取fragment的事物对象,并开启事务

        FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();

        //3,调用事务中相应的方法,来操作fragment

        //add方法参数,第一个要放入的容器(布局的Id),第二个是fragment对象

        fragmentTransaction.add(R.id.main_layout_id,new MyFragment());

        //4,提交事务

        fragmentTransaction.commit();

    }

}

Fragment的基本使用

Fragment常用的方法

添加Fragment的方法:add()

替换Fragment的方法replace()

移除Fragment的方法remove()

隐藏/显示Fragment的方法hide()/show()

这些是基本的使用情况

add()方法

1:切换fragment时不会重新创建,会保持fragment的状态,切换前是什么状态切换后还是什么状态

2:一般需要结合hideshow方法一起使用

使用add()方法添加Fragment

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

FragmentA fragmentA=new FragmentA();

 transaction.add(R.id.main_frame_layout, fragmentA);

transaction .hide(fragmentB);

transaction.show(fragmentA);

 

replace方法

1replace方法,FragmentA替换FragmentB

2FragmentA在被replace后被销毁onDestory()

 

使用replace()方法替换Fragment

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

FragmentA  fragmentA= new FragmentA();

transaction.replace(R.id.main_frame_layout, fragmentA);

transaction.commit();

 

 

 

 

 

 

FragmentManager

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值