初学Android Fragment

本文通过一个简单实例介绍了Android中Fragment的基本用法。Fragment可以被理解为Activity内的模块,用于实现更灵活的界面布局切换。文中详细展示了如何在一个Activity中加载和切换不同的Fragment。

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

其实昨天就学了一些,开始根本不知道Fragment到底是个什么东东,反复看老师的视频。

个人理解,Fragment相当于Activity中的一个个模块。类似微信的界面,点击微信,展示微信的Fragment,点击通讯录,展示通讯录的Fragment。。。

下面是一个简单的例子:在主布局上,点击按钮,跳转到另个fragment。


注:Fragment要引用v4.app.Fragment

MainActivity:

public class MainActivity extends FragmentActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        if(savedInstanceState == null){
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container,new PlaceholdeFragment())
                    .commit();
        }
    }
}

PlaceholdeFragment
public class PlaceholdeFragment extends Fragment {

    public PlaceholdeFragment(){

    }

    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,
                             Bundle saveInstanceState){
        View rootView  = inflater.inflate(R.layout.fragment_main,container,false);
        rootView.findViewById(R.id.btnShowAnotherFragment).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //呈现anotherFragment  首先获取FragmentManager,然后beginTransation开始进行变化,之后将一个新的fragment添加进来,最后提交。
                //为何使用replace而不使用add。replace:使用一个新的fragment替换当前,add为直接添加一个新的fragment。因为之前已经有了一个,所以用replace。
                getFragmentManager().beginTransaction().replace(R.id.container,new AnotherFragment()).commit();//传主布局的id,和新的fragment
            }
        });
        return rootView;
    }
}
主Fragment的布局:

<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" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivityFragment">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="呈现另一个Fragement"
        android:id="@+id/btnShowAnotherFragment"
        android:layout_gravity="center_horizontal" />
</LinearLayout>


AnotherFragment:

public class AnotherFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,
                             Bundle saveInstanceState){
        //初始化布局,需要解析的布局是:R.layout.fragment_another   主布局是:container
        View root  = inflater.inflate(R.layout.fragment_another,container,false);
        return root;
    }
}

AnotherFragment布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="this is another fragment"
        android:id="@+id/textView" />
</LinearLayout>






基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。 智能教学辅助系统 这是一个智能教学辅助系统的前端项目,基于 Vue3+TypeScript 开发,使用 Ant Design Vue 作为 UI 组件库。 功能模块 用户模块 登录/注册功能,支持学生和教师角色 毛玻璃效果的登录界面 教师模块 备课与设计:根据课程大纲自动设计教学内容 考核内容生成:自动生成多样化考核题目及参考答案 学情数据分析:自动化检测学生答案,提供数据分析 学生模块 在线学习助手:结合教学内容解答问题 实时练习评测助手:生成随练题目并纠错 管理模块 用户管理:管理员/教师/学生等用户基本管理 课件资源管理:按学科列表管理教师备课资源 大屏概览:使用统计、效率指数、学习效果等 技术栈 Vue3 TypeScript Pinia 状态管理 Ant Design Vue 组件库 Axios 请求库 ByteMD 编辑器 ECharts 图表库 Monaco 编辑器 双主题支持(专业科技风/暗黑风) 开发指南 # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build 简介 本项目旨在开发一个基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值