博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓开发入门教程-Fragment
阅读量:1894 次
发布时间:2019-04-26

本文共 2993 字,大约阅读时间需要 9 分钟。

关注 ,免费获取全套安卓开发学习资料

什么是Fragment

Activity是整个看到的界面,而Activity则可以继续分割出多个Fragment. Fragment最初是为了在平板电脑充分利用空间,但是手机端也经常使用,主要目的是共用屏幕上某一块区域.

如下面一种界面,上面蓝色框是几个功能(推荐、应用、游戏等)共用的显示区域,当用户切换到不同的功能页时,就将共用显示区域内容替换为对应的功能Fragment.

使用单个Fragment样例

效果图:

手动创建Fragment

  1. 在工程目录中单击右键,选择“New>Fragment>Fragment(Blank)”
  2. 在窗口中设置Fragment名称,对应布局文件名称.
  3. 默认创建的Fragment有点复杂,简化后如下:
class BlankFragment : Fragment() {
override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? {
return inflater.inflate(R.layout.fragment_blank, container, false) }}
  1. 在Activity对应布局文件中增加用于容纳Fragment布局容器
    修改activity_main.xml,添加一个FrameLayout,命名为containerLayout.

在Activity中加载该Fragment

下面演示点击button1按钮时,从MainActivity跳转到Main2Activity

replaceFragment(BlankFragment(), R.id.containerLayout)

完整代码如下:

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) replaceFragment(BlankFragment(), R.id.containerLayout) } private fun replaceFragment(fragment: Fragment, containerId: Int) = supportFragmentManager.beginTransaction().replace(containerId, fragment).commit()}

使用多个Fragment样例

多个Fragment利用同一块区域进行内容展示,一般可以通过标签页进行切换.

效果图

加载第一个Fragment

加载第二个Fragment

创建第一个Fragment及对应布局文件

  • 第一个Fragment
class FirstFragment : Fragment() {
override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? {
return inflater.inflate(R.layout.fragment_first, container, false) }}
  • 第一个Fragment对应布局:fragment_first.xml

创建第二个Fragment及对应布局文件

  • 第二个Fragment
class SecondFragment : Fragment() {
override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? {
return inflater.inflate(R.layout.fragment_second, container, false) }}
  • 第二个Fragment对应布局:fragment_second.xml

修改Activity对应的布局文件,展示两个底部标签.

下面代码中id为bottomLayout的布局,里面放了两个标签,用来点击切换页面上部containerLayout中的内容.

Activity代码中做Fragment加载及切换

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //默认加载第一个Fragment replaceFragment(FirstFragment(), R.id.containerLayout) //对page1Tv控件添加点击事件,点击后切换至FirstFragment page1Tv.setOnClickListener {
replaceFragment(FirstFragment(), R.id.containerLayout) } //对page2Tv控件添加点击事件,点击后切换至SecondFragment page2Tv.setOnClickListener {
replaceFragment(SecondFragment(), R.id.containerLayout) } } private fun replaceFragment(fragment: Fragment, containerId: Int) = supportFragmentManager.beginTransaction().replace(containerId, fragment).commit()}

完整源代码


安卓开发入门教程系列汇总

开发语言学习

UI控件学习系列

关注头条号,第一时间获取最新文章:

转载地址:http://kzodf.baihongyu.com/

你可能感兴趣的文章
js 常见错误(待补充)
查看>>
moment插件使用
查看>>
react
查看>>
2021-05-19
查看>>
2021-05-19
查看>>
2021-05-19
查看>>
2021-05-19
查看>>
todolist
查看>>
2021-05-22
查看>>
react 购物车
查看>>
react 路由
查看>>
2021-06-07
查看>>
面试-项目
查看>>
Mysql主从复制的配置(双机互为主从)
查看>>
java io输入输出流详解
查看>>
log4j在java中实现
查看>>
前台总结一
查看>>
dblink 创建使用
查看>>
机器学习[李宏毅]-笔记1-Course Introduction
查看>>
机器学习[李宏毅]-笔记2-Regression:Case Study
查看>>