Fragment-动态创建

发布时间 2023-03-23 22:47:02作者: 冰稀饭Aurora

Fragment的动态创建

动态创建不同于静态创建,不需要写固定的xml文件,但是依然要有一个xml文件来当容器。

1.我们需要使用<androidx.fragment.app.FragmentContainerView/>

<?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:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".DynamicFragmentActivity">

    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/frag_dy_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
</LinearLayout>

2.动态创建还需要在java代码中加入相应的动态创建的代码

package com.example.dataapplication;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

import android.os.Bundle;

import com.example.dataapplication.fragment.BlankFragment1;
import com.example.dataapplication.fragment.BlankFragment2;

public class DynamicFragmentActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dynamic_fragment);

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction =  fragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.frag_dy_1, BlankFragment2.class, null).commit();

    }
}

动态创建的基本的简单流程基本上这样