Android进阶——Fragment的静态与动态加载

本文详细介绍了Android中的Fragment,包括其概念、使用原因及优点。讲解了Fragment的静态加载和动态加载步骤,并提供了代码示例。此外,还探讨了Fragment如何与Adapter结合实现页面滑动切换。

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

学会使用Fragment的静态加载与动态加载

(一)fragment的概念:

Fragment是一种在Android3.0开始引入新的API技术,在Activity中将UI组件进行分组和模块化管理,而分组后的UI组件就是Fragment。


(二)为什么使用Fragment

一个Activity页面中可以包含多个Fragment模块,而同一个Fragment模块也可以被多个Activity使用。就可以解决局部布局问题。

总结优点:

  1. 实现界面的灵活切换;
  2. 布局切换更加流畅;
  3. 可以封装成不同的重要组件,进行单独管理生命周期和UI布局;
  4. 无须在AndroidManifest中注册,在布局文件中直接引用;

(三)Fragment的静态加载

步骤:

  • 新建一个空的Activity;
  • 在Activity布局文件中进行行布局,可以写入一个TextView控件;
  • 新建Fragment类,导入SDK中的Fragment包(不用使用V4包中的Fragment);
  • 返回ctivity布局文件写入fragment,注意一定要写它的name和id。

    图片展示:

    这里写图片描述

    代码展示:

 <fragment
        android:id="@+id/fa"
        android:name="com.lenovo.dandan.fragmentprojects.fragment.BlankFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </fragment>

(四)Fragment的动态加载

步骤:

  1. 建立新的活动Activity;
  2. 新建两个Fragment;
  3. 在Activity布局文件中添加两个按钮,用FragmentLayout布置碎片活动;
  4. 在Activity.javaz中定义两个Feagment页面,绑定Button的ID,为Button添加监听;
  5. 最后设置点击事件。

图片展示:

这里写图片描述

这里写图片描述

代码展示:

<FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></FrameLayout>

    public void onClick(View view) {
        FragmentManager manager=getFragmentManager();
        FragmentTransaction fragmentTransaction=manager.beginTransaction();
        switch (view.getId()) {
            case R.id.xs_btn1:
                if(fragmentA==null){
                    fragmentA=new FragmentA();
                }
                fragmentTransaction.replace(R.id.content,fragmentA);
                break;
            case R.id.xs_btn2:
                if(fragmentB==null){
                    fragmentB=new FragmentB();
                }
                fragmentTransaction.replace(R.id.content,fragmentB);
                break;
            default:
                break;
        }
        fragmentTransaction.commit();
    }

(五)Fragment与Adapter结合

图片预览:

这里写图片描述

  • 创建Adapter
public class MyAdapter extends FragmentPagerAdapter {

    private List<Fragment> mfragmentList;

    public MyAdapter(FragmentManager fm, List<Fragment>fragmentList) {
        super(fm);
        this.mfragmentList=fragmentList;
    }

    @Override
    public Fragment getItem(int position) {
        return mfragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mfragmentList.size();
    }
}
  • 创建三个Fragment

  • 创建适配器并绑定

 //创建适配器
        MyAdapter adapter = new MyAdapter(getSupportFragmentManager(), fragmentList);
        //绑定
        viewPager.setAdapter(adapter);
  • 页面滑动切换
    public void onClick(View view) {


        switch (view.getId()) {
            case R.id.news_btn:
                viewPager.setCurrentItem(0);
                break;
            case R.id.friend_btn:
                viewPager.setCurrentItem(1);
                break;
            case R.id.contact_btn:
                viewPager.setCurrentItem(2);
                break;
            default:
                break;

        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值