首页
学习
活动
专区
圈层
工具
发布

android之Fragment介绍

Fragment是一种可以嵌入在Activity当中的UI片段,用来组建Activity界面的局部模块, 也可以说一个Actiivty界面可以由多个Fragment组成。...其行为与Activity很相似, 有自己对应的布局(包含具体的View), 它有自己的生命周期,接收自己的输入事件,并且可以从运行中的activity中添加或移除。...一个fragment必须总是嵌入在一个activity中,同时fragment的生命周期受activity的影响。本质上会产生一个FrameLayout,它加载的布局为其子布局。...Fragment的生命周期 image.png onCreateView是创建的时候调用,onViewCreated是在onCreateView后被触发的事件,前后关系 就是fragment中的onCreateView...(表示activity执行oncreate方法完成了的时候会调用此方法) onDestroyView方法 Fragment中的布局被移除时调用(表示fragment销毁相关联的UI布局) onDetach

91420

DSL In Action

中,将Activity的布局方式从 setContentView()中传入Layout ID换到了直接的DSL,嗯… 看起来还不错,官方文档也提供了一个Anko View 组件化的方案: class MyActivity...这些View是怎么被构造的?这些View是怎么被添加进去的?如果是复杂的参数又应该怎么办?...比如说我已经用XML写好了页面的布局,然后我们需要根据代码在其中一个FrameLayout中动态添加一些东西。我们就可以拿到这个FrameLayout的引用,然后就可以用anko大展拳脚了。...再举一个例子,在BottomSheetDialogFragment中,我们拿到Dialog后,需要通过setContView的方式来给它设置有个View进去,而我们一般会在XML写好然后Inflater...如果你认真看了上面的内容,并且有自己的体会,可以在已有的UI构架中很快的用上Anko Layout来解决一些轻量级UI的构建。比如说List中的一个Item,或者一个小Dialog之类。

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android中最最常用—Fragment基础篇最详解

    前言 各位花粉好久不见,本人还没有从假期综合征中恢复状态,但是想到还有你们在,所以我的动力就立刻被充满啦!...为了兼容低版本, support-v4库中也开发了一套 FragmentAPI,最低兼容Android 1.6,这也是我们在开发中建议使用的。...1.静态添加 在需要加载 Fragment的 Activity对应的布局文件中添加 fragment的标签,需指定 name属性,为了限定类名。...需要有一个容器存放 Fragment,一般是 FrameLayout,因此在 Activity的布局文件中加入 FrameLayout。...常用方法 FragmentManager相关 1. getFragmentManager(): 获取 Fragment父容器的管理器,现在该方法在 Activity中已经被标记过时,不推荐使用。

    2.1K20

    【Flutter 混合开发】添加 Flutter 到 Android Fragment

    使用新引擎创建 FlutterFragment 添加 Flutter 到 Fragment 与添加 Activity 基本一样,如果添加到 Activity 满足需求,建议使用 Activity,因为...上面已经加载了 UI,但并不能一些交互和行为,通常情况下,需要将 Activity 的生命周期透传给 FlutterFragment: class MainActivity : AppCompatActivity....withNewEngine() .dartEntrypoint("newMain") .build() 在 main.dart 文件中添加...的性能比 TextureView 好,但其层次结构必须在最顶层或最底层,而且在 Android N之前的Android版本上,无法对 SurfaceView 进行动画处理,因为它们的布局和渲染与其他...但是,有的时候需要其透明,显示其底下的 UI,因此,Flutter在 FlutterFragment 中支持设置为透明。

    1.4K20

    Android中最最常用—Fragment实战篇最详解

    前言 Hi,各位花粉们,上一节Android中最最常用—Fragment基础篇最详解,我们详细的介绍了 Fragment的基本原理及使用、 Fragment中的常用方法等。...示例一: RadioButton+ Fragment 在之前介绍的你不能错过的RadioButton实践一文中,我们详细介绍了 RadioButton的使用,在示例:实现微信底部Tab效果中,只是实现了底部导航的效果切换...1.修改原 Activity的主布局页面,新增 FrameLayout作为 Fragment的容器。 在 Activity中实例化各个 Fragment和 RadioButton和 RadioParent的控件,设置好监听器。...修改原代码,新增 ViewPager关联 RadioButton和 Fragment,步骤如下: 1.修改 Activity布局文件,替换 FrameLayout为 ViewPager。 <?

    7.8K62

    玩转LayoutInflater

    root 中 注意:此时 Xml 布局生成的根 View 已经被添加到其他 View 中,注意避免重复添加而报错 如果传入的 root 为 null ,此时会将 Xml 布局生成的根 View 对象直接返回...为 false,此时会给 Xml 布局生成的根 View 对象设置布局参数 此时根 View 的布局属性会生效,只不过没有被添加到任何 View 中,而又因为 MainActivity 中调用了 addView...内容栏是一个FrameLayout,我们在 Activity 中调用 setContentView 就是将 View 添加到这个FrameLayout 中。...看到这里你应该也明白了:Activity 中布局根 View 的布局属性之所以能生效,是因为 Android 会自动在布局文件的最外层再嵌套一个FrameLayout 总结 本篇文章重点内容: LayoutInflater...,此时会将 Xml 布局生成的根 View 对象直接返回 Activity 中布局根 View 的布局属性会生效是因为 Android 会自动在布局文件的最外层再嵌套一个 FrameLayout 好了

    55340

    【Jetpack】Navigation 导航组件 ② ( Navigation 核心要点说明 | 创建 Navigation Graph | 创建 NavHostFragment | 完整代码示例 )

    Graph , 在其中配置 Fragment 之间的跳转动作 ; 再后 , 基于创建的 Navigation Graph 创建显示内容的 NavHostFragment 组件 ; 最后 , 在 Activity..., 分别实现两个 Fragment 之间的跳转 ; 5、创建 NavHostFragment NavHostFragment 设置在 Activity 的布局文件中 , 一般是为 中拖动 Container 下的 NavHostFragment 到布局中 , 生成的代码是错误的 ; 具体出错的内容在错误记录专栏有详细分析 , 这里不再赘述 ; 6、创建...布局文件中添加 NavHostFragment 组件 NavHostFragment 设置在 Activity 的布局文件中 , 一般是为 标签设置一个 android:name...> 4、Activity 代码中获取 NavController 并进行导航 在 Activity 中通过 调用 findNavController 函数 , 获取 NavController , 然后通过该

    89920

    【Jetpack】Navigation 导航组件 ⑤ ( NavigationUI 类使用 )

    顶部应用栏 / 抽屉式导航栏 / 底部导航栏中 的界面导航 ; 本篇博客中介绍一种使用场景 : 使用 AppBar 中的菜单选项控制 Navigation 界面跳转 ; 在 Activity 中 ,...(Blank) " 选项 , 在弹出的界面中 , 输入 Fragment 名称 , 创建新的 Fragment ; 创建 Fragment 时 , 会自动生成对应的 布局文件 : 注意 : 该操作比较坑...Activity 导入 NavHostFragment 进入 Launcher 界面 MainActivity 的布局中 , 删除布局中的其它元素 ; 将 NavHostFragment 拖入到 布局中...界面开发 NavigationUI 的主要逻辑 ( 重点 ) a、添加 Fragment 布局 在 Activity 的布局文件中 , 添加如下代码 , 不建议在 Design 界面直接拖动 NavHostFragment...> b、FragmentB 界面的 Kotlin 源码和布局文件 在该界面中 , 设置了 隐藏 AppBar 中的 菜单按钮 的功能 , 跳转到 FragmentB 之后 , 右上角 就不再显示菜单按钮

    1.4K40

    在 Android 中如何确定 App(Activity) 的启动者

    最近在帮忙定位一个问题,涉及到某个应用自动启动了,为了确定是谁调用的,使用如下的日志进行查看(注:为了简单考虑,下面的启动者为launcher) 1 2 3 4 (pre_release|✔) % adb...当然前面说了,示例的启动者是launcher,那我们过滤一下launcher 1 2 adb shell ps | grep launcher u0_a70 2207 620 4979992...uid=10070(u0_a70) gid=10070(u0_a70) groups=10070(u0_a70), context=u:r:shell:s0 果然,u0_a70和10070 是有关联的...u0_a70 的含义 u0 默认的手机第一个用户(可以通过设置里面的多用户新增和切换) a 代表app 70 代表着第70个应用 转换公式 简单而言,对应的公式是这样 u0_a70 = “u0_” +...“a” + (uid(这里是10070) – FIRST_APPLICATION_UID(固定值10000)) 具体复杂的转换,请参考这段代码 1 2 3 4 5 6 7 8 9 10 11 12 13

    3.8K20

    【Jetpack】Navigation 导航组件 ① ( Navigation 引入 | Navigation 特点 | Navigation 重要组件 | Navigation 使用流程 )

    一、Navigation 引入 Android 开发中 , 最常用的 UI 架构 就是 使用一个 Activity 嵌套多个 Fragment , 这就需要 对 Fragment 进行管理 ; 在传统的...切换动画设置运行 , Fragment 与 Fragment / Activity 之间的数据传递 , 应用 App Bar 管理 等操作 ; 上述操作都是 使用纯代码方式进行实现 , 在页面和 App...二、Navigation 特点 Navigation 提供了 可视化的 页面导航图 , 与 iOS 开发中的 Xcode 环境中的 StoryBoard 类似 ; 在 布局文件 的 Design 模式下..., 可以看到 Fragment 之间的跳转关系 ; 在 Xml 布局文件中 , 通过在 Fragment 标签中 , 添加 action 标签 , 设置该标签 app:destination 属性...Activity 中 , 具体是在 Activity 的布局文件中设置 NavHostFragment 容器组件 , 这是一个 UI 布局组件 ; 拖动 Container 下的 NavHostFragment

    1.5K40

    App性能优化

    类型Context Activity中持有非静态内部类 资源性对象为关闭(File、Cursor等) 注册对象未注销(EventBus、RxJava、ButterKnife等) Handler使用不当引起内存泄漏...容器中的对象没及时清理 WebView导致内存泄漏 (1.2)合理选择数据结构(SparseArray、ArrayMap等) (1.3)减少不必要的内存开销(合理创建对象、复用) (1.4)避免基本数据类型的装箱和拆箱消耗...Thread.setDefaultUncaughtExceptionHandler() (2.2)提高代码质量、逻辑严谨性、代码审核 2、流畅度 # 公众号:AllTests软件测试 (1)布局优化 使用轻量级UI组件(LinearLayout、FrameLayout...),LinearLayout避免使用权重属性,比较耗费性能 通过RelativeLayout和ConstraintLayout减少复杂视图层级、布局扁平化,ConstraintLayout相对于RelativeLayout...,移除Window默认的背景、按需显示占位背景图片 Canvas.clipRect()来帮助系统识别可见区域,只有可见区域才被绘制 (3)启动优化 减少Application的onCreate执行时间

    1.5K10

    片段分子化合物在新药研发中的作用 | MedChemExpress

    FBDD 方法的优势 在医药领域,探索先导化合物发现方法与新药研发具有同等重要的地位。...随着药物化学及相关研究领域的不断发展,新药研发新方法也不断被开发出来,比如我们熟知的高通量筛选、虚拟筛选、基于结构的药物设计及开发等。...基于片段化合物的药物开发 (Fragment-based drug design, FBDD) 已经有 20 多年的历史,在这 20 多年的实践及优化中,FBDD 已经成为新药开发的主流方法。...3、对命中片段进行优化和连接 筛选出具有活性的片段化合物之后,就要对片段化合物进行结构延伸得到高活性先导化合物,目前最主要的片段延伸方式包括: ◑片段连接 (Fragment-linking),即与受体结合的相邻的两个片段经链接成活性较强的较大分子...◑片段生长 (Fragment-growing),即以受体结合的第一个片段为核心,经理性设计,在邻近处逐渐生长成活性比较强的较大分子。

    1K10

    在 Visual Studio Code 中添加自定义的代码片段

    Visual Studio Code 的代码片段设置 你可以在 Visual Studio Code 的菜单中找到代码片段的设置入口,在 File -> Preferences -> User Snippets...在新建全局代码片段和当前工作区的代码片段的时候,是需要自己指定名称的。...打开快捷命令输入框进入 Insert Snippet 命令,输入 toc 可以看到我们刚刚加入的代码片段: 或者,在带有智能感知提示的文件中,可以直接通过智能感知提示插入: 在插入的代码片段中,...在 Visual Studio Code 中,你有这些变量可以使用: -TM_SELECTED_TEXT - 在插入代码片段的时刻选中的文本 -TM_CURRENT_LINE - 在插入代码片段的时刻光标所在的行...这个时间我之前也在输入法中调过:常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/微软拼音)。

    3.2K31
    领券