Android官方开发文档Training系列课程中文版:布局性能优化之布局复用

原文地址:http://android.xsoftlab.net/training/improving-layouts/reusing-layouts.html

尽管Android提供了种类繁多的常用控件,但是有时你可能希望重用一些比较复杂的布局。如果要重用这些布局,可以使用< include/>标签与< merge/>标签,它们可将一个布局嵌入进另一个布局中。

可重用布局这项功能特别强大,它可以使你创建那些复杂的可重用布局。比方说,可以用来创建一个含有yes和no按钮的容器或者一个含有progressBar及一个文本框的容器。它还意味着程序可以对这些布局进行单独控制。所以,虽然说你可以通过自定义View的方式来实现更为复杂的UI组件,但是重用布局的方法更简便一些。

创建一个可重用的布局

如果你已经知道哪一个布局需要重用,那么就创建一个新的xml文件用来定义这个布局。下面就定义了一个ActionBar的布局文件,众所周知,ActionBar是会在每个Activity中统一出现的:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width=”match_parent”android:layout_height="wrap_content"android:background="@color/titlebar_bg"><ImageView android:layout_width="wrap_content"android:layout_height="wrap_content" android:src="@drawable/gafricalogo" />
</FrameLayout>

使用< include/>标签

在希望添加重用布局的布局内,添加< include/>标签。下面的例子就是将上面的布局加入到了当前的布局中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width=”match_parent”android:layout_height=”match_parent”android:background="@color/app_bg"android:gravity="center_horizontal"><include layout="@layout/titlebar"/><TextView android:layout_width=”match_parent”android:layout_height="wrap_content"android:text="@string/hello"android:padding="10dp" />...
</LinearLayout>

你也可以重写布局的参数,但只仅限于以android:layout_*开头的布局参数。就像下面这样:

<include android:id=”@+id/news_titleandroid:layout_width=”match_parent”android:layout_height=”match_parent”layout=”@layout/title”/>

如果你要重写< include>标签指定布局的布局属性,那么必须重写android:layout_height及android:layout_width这两个属性,以便使其它属性的作用生效。

使用< merge>标签

在将一个布局内嵌进另一个布局时,< merge>标签可以帮助消除冗余的View容器。举个例子,如果你的主布局是一个垂直的LinearLayout,在它的内部含有两个View,并且这两个View需要在多个布局中重用,那么重用这两个View的布局需要有一个root View。然而,使用单独的LinearLayout作为这个root View会导致在一个垂直的LinearLayout中又嵌了一个垂直的LinearLayout。其实这个内嵌的LinearLayout并不是我们真正想要的,此外它还会降低UI性能。

为了避免出现这种冗杂的View容器,你可以使用< merge>标签作为这两个View的root View:

<merge xmlns:android="http://schemas.android.com/apk/res/android"><Button
        android:layout_width="fill_parent" android:layout_height="wrap_content"android:text="@string/add"/><Button
        android:layout_width="fill_parent" android:layout_height="wrap_content"android:text="@string/delete"/>
</merge>

那么现在再使用这个布局的时候,系统会自动忽略< merge>标签,并会将两个Button View直接加入到布局< include/>标签所指定的位置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

:批量制作档案表,要从excel表格中将每个人的数据导入到docx档案

https://www.pythonf.cn/read/149081 Python自动将Excel数据填充到word的指定位置,Word,中 具体代码如下&#xff1a; #!/usr/bin/env python3 # -*- coding: utf-8 -*- from docxtpl import DocxTemplate from openpyxl import load_workbook import osdef replace(obj):if o…

LeetCode 1078. Bigram 分词

1. 题目 给出第一个词 first 和第二个词 second&#xff0c;考虑在某些文本 text 中可能以 “first second third” 形式出现的情况&#xff0c;其中 second 紧随 first 出现&#xff0c;third 紧随 second 出现。 对于每种这样的情况&#xff0c;将第三个词 “third” 添加到…

深度学习在OCR中的应用

背景 计算机视觉是利用摄像机和电脑代替人眼&#xff0c;使得计算机拥有类似于人类的对目标进行检测、识别、理解、跟踪、判别决策的功能。以美团业务为例&#xff0c;在商家上单、团单展示、消费评价等多个环节都会涉及计算机视觉的应用&#xff0c;包括文字识别、图片分类、目…

Android官方开发文档Training系列课程中文版:布局性能优化之按需加载View

原文地址&#xff1a;http://android.xsoftlab.net/training/improving-layouts/loading-ondemand.html 有时应用程序中会有一些很少用到的复杂布局。在需要它们的时候再加载可以降低内存的消耗&#xff0c;同时也可以加快界面的渲染速度。 定义ViewStub ViewStub是一个轻量…

千呼万唤始出来——GPT-3终于开源!

文 | 小戏编 | 小轶GPT3终于开源&#xff01;不过&#xff0c;不是官方开的&#xff08;别打我Eleuther AI推出的名为GPT-Neo的开源项目&#xff0c;于今晨4点于twitter正式宣布&#xff1a;已经开源了复现版GPT-3的模型参数&#xff08;1.3B和2.7B级别&#xff09;&#xff0c…

论文浅尝 - AAAI2020 | 迈向建立多语言义元知识库:用于 BabelNet Synsets 义元预测...

论文笔记整理&#xff1a;潘锐&#xff0c;天津大学硕士。来源&#xff1a;AAAI 2020链接&#xff1a;https://arxiv.org/pdf/1912.01795.pdf摘要义原被定义为人类语言的最小语义单位。义原知识库&#xff08;KBs&#xff09;是一种包含义原标注词汇的知识库&#xff0c;它已成…

达观数据:文档智能审阅系统

https://www.bilibili.com/video/BV1dk4y1y75W?fromsearch&seid10707410997793429063 文档智能审阅系统

美团外卖iOS多端复用的推动、支撑与思考

前言 美团外卖2013年11月开始起步&#xff0c;随后高速发展&#xff0c;不断刷新多项行业记录。截止至2018年5月19日&#xff0c;日订单量峰值已超过2000万&#xff0c;是全球规模最大的外卖平台。业务的快速发展对技术支撑提出了更高的要求。为线上用户提供高稳定的服务体验&a…

LeetCode 784. 字母大小写全排列(位运算回溯)

1. 题目 给定一个字符串S&#xff0c;通过将字符串S中的每个字母转变大小写&#xff0c;我们可以获得一个新的字符串。返回所有可能得到的字符串集合。 示例: 输入: S “a1b2” 输出: [“a1b2”, “a1B2”, “A1b2”, “A1B2”] 输入: S “3z4” 输出: [“3z4”, “3Z4”]…

Android官方开发文档Training系列课程中文版:布局性能优化之ListView的优化

原文地址&#xff1a;http://android.xsoftlab.net/training/improving-layouts/smooth-scrolling.html 想要让ListView滑动流畅的关键所在是减轻主线程的负担。要确保任何的磁盘访问、网络访问、或者SQL访问都是在单独的线程中执行的。如果要测试APP的状态&#xff0c;可以开…

论文浅尝 - WWW2020 | 从自然语言交互中提取开放意图

论文笔记整理&#xff1a;娄东方&#xff0c;浙江大学博士后&#xff0c;研究方向为事件抽取。Vedula N, Lipka N, Maneriker P, et al. Open Intent Extraction from Natural Language Interactions[C]//Proceedings of The Web Conference 2020. 2020: 2009-2020.来源&#x…

OCR数据处理(上篇)+OCR数据处理(下篇)

OCR数据处理&#xff08;上篇&#xff09;&#xff1a;https://mp.weixin.qq.com/s/u956SljZEvInqMQCCTcEkg OCR数据处理&#xff08;下篇&#xff09;&#xff1a;https://mp.weixin.qq.com/s/KWoh4pGapYh8S5T7VHNrTQ

深度学习在文本领域的应用

背景 近几年以深度学习技术为核心的人工智能得到广泛的关注&#xff0c;无论是学术界还是工业界&#xff0c;它们都把深度学习作为研究应用的焦点。而深度学习技术突飞猛进的发展离不开海量数据的积累、计算能力的提升和算法模型的改进。本文主要介绍深度学习技术在文本领域的应…

Android官方开发文档Training系列课程中文版:电池续航时间优化之监测电池电量及充电状态

原文地址&#xff1a;http://android.xsoftlab.net/training/monitoring-device-state/index.html 引言 作为一款优秀的APP应用&#xff0c;应该总是想方设法的降低电量的消耗。通过这节课的学习&#xff0c;你将有能力使APP可以基于设备的状态来调整APP的功能及行为。 我们…

LeetCode 1009. 十进制整数的反码(位运算)

1. 题目 每个非负整数 N 都有其二进制表示。例如&#xff0c; 5 可以被表示为二进制 “101”&#xff0c;11 可以用二进制 “1011” 表示&#xff0c;依此类推。注意&#xff0c;除 N 0 外&#xff0c;任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1 改为 0 且…

新分类!全总结!最新Awesome-SLU-Survey资源库开源!

文 | 哈工大SCIR 覃立波、谢天宝等指导老师 | 哈工大SCIR 车万翔教授简介口语语言理解&#xff08;Spoken Language Understanding&#xff0c;SLU&#xff09;作为任务型对话系统的核心组件&#xff0c;目的是为了获取用户询问语句的框架语义表示&#xff08;semantics frame&…

技术实践 | 用 NetworkX + Gephi + Nebula Graph 分析权力的游戏人物关系(上篇)

本文转载自公众号&#xff1a;Nebula Graph Community 。我们都知道《权利的游戏》在全世界都很多忠实的粉丝&#xff0c;除去你永远不知道剧情下一秒谁会挂这种意外“惊喜”&#xff0c;当中复杂交错的人物关系也是它火爆的原因之一&#xff0c;而本文介绍如何通过 NetworkX 访…

python将pdf中的每一页转化为图片保存

import PyPDF4 import pikepdf import fitz #对pdf文件进行简单的解密 def jiemi(pdfpath):new_pdfpath pdfpath[:-4] _new pdfpath[-4:]fp open(pdfpath, "rb")pdfFile PyPDF4.pdf.PdfFileReader(fp)# pdf 解密if pdfFile.isEncrypted:pdf pikepdf.open(pdfp…

美团外卖Android Crash治理之路

Crash率是衡量一个App好坏的重要指标之一&#xff0c;如果你忽略了它的存在&#xff0c;它就会愈演愈烈&#xff0c;最后造成大量用户的流失&#xff0c;进而给公司带来无法估量的损失。本文讲述美团外卖Android客户端团队在将App的Crash率从千分之三做到万分之二过程中所做的大…

全栈深度学习第7期: 研究方向这么多,哪些是有有趣又潜力的呢?

一起追剧鸭简介Berkeley全栈深度学习追剧计划是由夕小瑶的卖萌屋发起的优质公开课打卡项目&#xff0c;通过微信群为同期追剧的小伙伴提供交流平台。关于该计划的详请见这里。Berkeley深度学习追剧群目前已有1000小伙伴加入&#xff0c;公众号后台回复口令 深度学习追剧 入群。…