博客
关于我
Android 布局优化之<include/><merge/>和 <ViewStub>
阅读量:613 次
发布时间:2019-03-13

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

Excellent, let's optimize the provided content according to your requirements.

By marking up a layout for reuse in Android development, developers often need to reuse complex components like title bars. This can be efficiently achieved by creating a reusable layout file called include_toolbar.xml, which contains a Toolbar widget with a TextView inside it.

Here’s an example of the include_toolbar.xml layout file:

Now, in your activity_main, you can include this toolbar layout using the <include> tag:

When using the <include> tag in your layout, here are some important points to keep in mind:

  • The <include> tag’s id attribute will override the id attribute of the included layout’s root node.
  • The <include> tag’s layout_* attributes will override the included layout’s root node’s layout_* attributes.
  • In ConstraintLayout, using the <include> tag requires the included view to have layout_width and layout_height attributes defined.
  • To reduce the layout hierarchy levels, you can use the <merge> tag when including views. This helps in avoiding unnecessary nested layouts, which can affect performance:

    When this view is included in another layout, the <merge> tag will be ignored, and the buttons will be placed directly in the布局.

    If you need to load a layout only when it’s actually required, you can use the <ViewStub> tag. This allows you to defer the loading of these layouts until they are needed:

    The ViewStub layout can be inflated when needed using either:

    val errorView = findViewById
    (R.id.view_stub).inflate()

    It’s important to note that inflate() can only be called once. After the first call, the ViewStub will no longer be part of the view hierarchy, and its original id will only be valid until the layout is inflated.

    By following these principles, you can efficiently manage layout reuse and optimize your Android development workflow.

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

    你可能感兴趣的文章
    vue(渐进式前端框架)
    查看>>
    权值初始化和与损失函数
    查看>>
    vscode设置eslint保存文件时自动修复eslint错误
    查看>>
    最大半连通子图
    查看>>
    Remove Extra one 维护前缀最大最小值
    查看>>
    GitHub完整记录数据库GHTorrent的下载和安装经验
    查看>>
    Android进阶解密读书笔记2——第2章:Android系统启动——第1、2小节
    查看>>
    Gradle实战四:Jenkins持续集成
    查看>>
    wgcloud运维监控系统错误:防篡改校验错误次数大于10次,不再上报数据
    查看>>
    iOS 开发官方文档链接收集
    查看>>
    vue报错 created hook错误
    查看>>
    12-面向对象1
    查看>>
    HDU - 4109 Instrction Arrangement
    查看>>
    JQuery--手风琴,留言板
    查看>>
    MFC 自定义消息发送字符串
    查看>>
    Linux操作系统的安装与使用
    查看>>
    C++ 继承 详解
    查看>>
    OSPF多区域
    查看>>
    Docker入门之-镜像(二)
    查看>>
    数据结构——链表(3)
    查看>>