博客
关于我
Android 布局优化之<include/><merge/>和 <ViewStub>
阅读量:622 次
发布时间: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/

    你可能感兴趣的文章
    Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
    查看>>
    mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
    查看>>
    mysqldump 参数--lock-tables浅析
    查看>>
    mysqldump 导出中文乱码
    查看>>
    mysqldump 导出数据库中每张表的前n条
    查看>>
    mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
    查看>>
    Mysqldump参数大全(参数来源于mysql5.5.19源码)
    查看>>
    mysqldump备份时忽略某些表
    查看>>
    mysqldump实现数据备份及灾难恢复
    查看>>
    mysqldump数据库备份无法进行操作只能查询 --single-transaction
    查看>>
    mysqldump的一些用法
    查看>>
    mysqli
    查看>>
    MySQLIntegrityConstraintViolationException异常处理
    查看>>
    mysqlreport分析工具详解
    查看>>
    MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
    查看>>
    Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
    查看>>
    mysql_real_connect 参数注意
    查看>>
    mysql_secure_installation初始化数据库报Access denied
    查看>>
    MySQL_西安11月销售昨日未上架的产品_20161212
    查看>>
    Mysql——深入浅出InnoDB底层原理
    查看>>