安卓基础学习 Day25 |Fragment

本文详细介绍了Android中的Fragment概念,包括其在页面切换中的作用、生命周期及创建方法。通过实例展示了如何创建三个Fragment,并利用ViewPager实现滑动切换效果。同时,探讨了Fragment与Activity的关系以及动态和静态加载的方式。最后,提供了完整代码示例和测试效果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面的话

1、主要参考自:https://b23.tv/9q3R75
2、内容如果有不对的,希望可以指出或补充。
3、新知识。

一、概述

Fragment(碎片):主要是为了提高页面间的切换效率。是一种(必须)嵌入在Activity中的UI片段,与Activity非常相似,不仅包含布局,同时也具有自己的生命周期,但受Activity的生命周期所影响,也就是说Activity停止的时候,Activity中所有的Fragment都会被停止。一个Activity可以有多个Fragment,一个Fragment可以被多个Activity重用。

使用Fragment可以把屏幕划分成几块,然后进行分组,进行模块化管理。

建议一个App使用一个Activity包含多个Fragment的形式来实现。

生命周期(转↓):

一般,至少需要实现这几个生命周期方法:onCreate()、onCreateView()、onPause()

二、创建

注意:因为Fragment是Android3.0版本后引入的,所以minSdk需要大于11。

1、基于模板创建-Fragment类、fragment布局(fragment显示内容的)

在Activity(活动)存在的前提中。

弹出的窗口。

2、创建

在Activity中使用Fragment时,可以通过两种方式(一种是通过布局文件、一种是通过代码)将Fragment添加到Activity中。

静态加载一旦添加就不能在运行时删除。

① 在activity布局文件里声明fragment-静态

② 通过java代码将fragment添加到对应布局中-动态

三、测试-滑动切换界面

功能:实现三个界面进行滑动切换。

1、【基于模板创建】三个Frament(Fragment1和fragment_1、Fragment2和fragment_2、Fragment3和fragment_3),其中布局如下(其余两个同理)。

2、在主布局中设置如下。

3、MainActivity.java

package com.example.testfragment;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;

import android.os.Bundle;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private List<Fragment> fragmentList;

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

        //获取控件
        ViewPager viewPager = findViewById(R.id.viewpager);
        //使用ViewPager需要适配器
        //创建集合
        fragmentList = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            fragmentList.add(new Fragment1());
            fragmentList.add(new Fragment2());
            fragmentList.add(new Fragment3());
        }
        //适配器
        //getSupportFragmentManager碎片管理器
        FragAdapter adapter = new FragAdapter(getSupportFragmentManager());
        viewPager.setAdapter(adapter);
    }

    public class FragAdapter extends FragmentPagerAdapter{
        public FragAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return fragmentList.get(position);//到集合中获取到数据
        }

        @Override
        public int getCount() {
            return fragmentList.size();
        }
    }
}

4、效果如下

补充

1、Fragment基本概述

2、Androidx 中的 ViewPager 与 ViewPager2

3、ViewPager 全面总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值