Android Studio Fragment使用示例

一、Fragment是什么

Fragment 是 Android 3.0(API 级别11)引入的一种新的组件类型,也是 Android 系统 UI 的基本组成部分之一。Fragment 可以理解为 Activity 中的“模块”,每个 Fragment 可以拥有自己的布局文件、逻辑代码与生命周期等特点。相比 Activity,它更加轻量级,可以方便地再 Activity 中添加、移除和替换。

二、为什么使用Fragment

使用 Fragment 可以让我们在单个 Activity 中拥有更多模块,每个模块可以拥有自己的 UI 界面和逻辑处理。举个例子,我们在一个新闻 App 的某个 Activity 中可以使用一个 Fragment 显示新闻列表,使用另外一个 Fragment 显示新闻详情,用户可以通过点击列表项切换两个 Fragment 的显示,这样可以提高应用程序的灵活性和用户体验。

三、如何使用Fragment

1. 创建 Fragment

我们可以通过使用 Android Studio 提供的模板来创建一个新的 Fragment。在 Android Studio 中,依次选择 File -> New -> Fragment -> Fragment (Blank),然后在弹出的对话框中设置名字、布局等属性即可。

public class MyFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_my, container, false);
        //TODO: add logic code here
        return rootView;
    }
}

其中,onCreateView() 方法用于加载 Fragment 的布局文件,并返回一个对应的视图对象。在上面的代码中,我们通过 inflate() 方法将 fragment_my.xml 布局文件加载到内存中,并将其作为根视图返回。

2. 在 Activity 中使用 Fragment

在 Activity 中使用 Fragment 几乎是一样的,我们需要在 Activity 中添加一个 FrameLayout 控件,用于承载 Fragment。然后,在 Activity 的 onCreate() 方法中通过 FragmentManager 将 Fragment 添加到 FrameLayout 中即可。

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getSupportFragmentManager().beginTransaction().add(R.id.container, new MyFragment()).commit();
    }
}

其中,getSupportFragmentManager() 方法返回 Activity 中的 FragmentManager 对象,通过 beginTransaction() 方法开启一个事务,并通过 add() 方法将 Fragment 添加到 FrameLayout 中。

3. 在 Fragment 中使用其他 Fragment

在 Fragment 中使用其他 Fragment 也很简单,我们只需要在 Fragment 中创建另外一个 Fragment,并使用 getChildFragmentManager() 方法获取当前 Fragment 中的 FragmentManager 对象,然后使用 beginTransaction() 方法开启一个事务,并通过 add() 方法将 Fragment 添加到当前 Fragment 的布局中即可。

public class MyFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_my, container, false);
        //TODO: add logic code here
        getChildFragmentManager().beginTransaction().add(R.id.container, new OtherFragment()).commit();
        return rootView;
    }
}

四、总结

本文介绍了如何使用 Fragment,包括创建 Fragment、在 Activity 中使用 Fragment、在 Fragment 中使用其他 Fragment 等。希望能够对大家使用 Android 开发有所帮助。

原创文章,作者:ZPKJ,如若转载,请注明出处:https://www.506064.com/n/146983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZPKJZPKJ
上一篇 2024-10-31 15:33
下一篇 2024-10-31 15:33

相关推荐

  • 北化教务管理系统介绍及开发代码示例

    本文将从多个方面对北化教务管理系统进行介绍及开发代码示例,帮助开发者更好地理解和应用该系统。 一、项目介绍 北化教务管理系统是一款针对高校学生和教职工的综合信息管理系统。系统实现的…

    编程 2025-04-29
  • Python调字号: 用法介绍字号调整方法及示例代码

    在Python中,调整字号是很常见的需求,因为它能够使输出内容更加直观、美观,并且有利于阅读。本文将从多个方面详解Python调字号的方法。 一、内置函数实现字号调整 Python…

    编程 2025-04-29
  • 选择大容量免费云盘的优缺点及实现代码示例

    云盘是现代人必备的工具之一,云盘的容量大小是选择云盘的重要因素之一。本文将从多个方面详细阐述使用大容量免费云盘的优缺点,并提供相应的实现代码示例。 一、存储空间需求分析 不同的人使…

    编程 2025-04-29
  • Corsregistry.a的及代码示例

    本篇文章将从多个方面详细阐述corsregistry.a,同时提供相应代码示例。 一、什么是corsregistry.a? corsregistry.a是Docker Regist…

    编程 2025-04-28
  • Python Flask系列完整示例

    Flask是一个Python Web框架,在Python社区中非常流行。在本文中,我们将深入探讨一些常见的Flask功能和技巧,包括路由、模板、表单、数据库和部署。 一、路由 Fl…

    编程 2025-04-28
  • Android ViewPager和ScrollView滑动冲突问题

    Android开发中,ViewPager和ScrollView是两个常用的控件。但是当它们同时使用时,可能会发生滑动冲突的问题。本文将从多个方面介绍解决Android ViewPa…

    编程 2025-04-28
  • Android如何点击其他区域收起软键盘

    在Android应用中,当输入框获取焦点弹出软键盘后,我们希望能够点击其他区域使软键盘消失,以提升用户体验。本篇文章将说明如何实现这一功能。 一、获取焦点并显示软键盘 在Andro…

    编程 2025-04-28
  • 微信mac版历史版完整代码示例与使用方法

    微信是一款广受欢迎的即时通讯软件,为了方便用户在Mac电脑上也能使用微信,微信团队推出了Mac版微信。本文将主要讲解微信mac版历史版的完整代码示例以及使用方法。 一、下载微信ma…

    编程 2025-04-28
  • 使用Python读取微信步数的完整代码示例

    本文将从多方面详细介绍使用Python读取微信步数的方法,包括使用微信Web API和使用Python爬虫获取数据,最终给出完整的代码示例。 一、使用微信Web API获取微信步数…

    编程 2025-04-28
  • Python交集并集的用法及示例

    本文主要介绍Python中交集和并集的用法和示例。Python作为一门强大的编程语言,支持多种数据结构,其中集合是比较常用的一种。而集合的交集和并集是集合运算中重要的概念。在Pyt…

    编程 2025-04-27

发表回复

登录后才能评论