Android布局是整个UI的基础,好的布局不但能够带来好看的效果,同样会带来效率上的提高。一般情况下我们需要尽可能的减少布局的层次,避免没完没了的一层一层的嵌套。Android SDK的tools目录下的hierarchyviewer可以帮助我们查看布局层次,提出一些修改意见,当然使用的时候你的程序得跑在模拟器上才行。
merge标签的使用:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/welcome"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/green_btn_selector"/>
</merge>
一般情况下我们都能够将顶层是FrameLayout的布局替换为merge,但是merge标签的使用还是有一些限制:
1.只能作为一个布局的根节点。
2.使用LayoutInflater.inflate加载布局的时候需要使用View inflate(int resource, ViewGroup root, boolean attachToRoot)为其指定一个ViewGroup以及设置attachToRoot为true。
ViewStub的使用:
有时候我们需要动态的设置一个控件或者布局的显示。通常的做法是设置visibility属性,当满足某个条件时调用setVisibility(View.VISIBLE)显示出来。这样做逻辑上比较简单,但是布局初始化时就算控件没有显示出来,依然需要被实例化,ViewStub则可以做到只在调用inflate()方法的时候才被实例化。
<ViewStub
android:id="@+id/viewstub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout="@layout/view_show_layout"/>
ViewStub viewStub = (ViewStub) findViewById(R.id.viewstub);
View view = viewStub.inflate();
当调用viewStub.inflate()的时候,view_show_layout才被实例化并显示在UI界面上。
需要注意的是ViewStub一旦调用inflate()显示出布局以后就不能再通过它控制布局的隐藏了,如果你的布局需要不断地隐藏显示,那么ViewStub就不再合适了。
分享到:
相关推荐
标题中的“【优化布局】基于matlab GUI遗传算法求解PCB元器件布局优化问题【含Matlab源码 694期】”表明这是一个关于使用MATLAB图形用户界面(GUI)实现的遗传算法,目的是解决印刷电路板(PCB)上的元器件布局优化...
本文的研究主题是关于多芯片PCB(印刷电路板)板热布局优化的试验研究及数值模拟。该研究旨在通过实验和数值仿真技术来预测芯片组布局优化对PCB板温度分布的影响,以及探索有效的热布局优化方法。研究中应用了红外...
全球供应链布局优化问题一直是学术界和实务界关注的焦点,尤其在非均质国家条件下,如何有效布局供应链以应对不同国家和地区的特殊规制、要素条件等因素,对于提升供应链整体的运作效率和竞争力尤为重要。...
在Android应用开发中,布局优化是提升应用性能和用户体验的关键环节。有效的布局优化可以减少内存消耗,加快界面渲染速度,并提高应用的响应性。本文将深入探讨如何利用`include`、`ViewStub`和`merge`标签进行...
论文研究-城市道路单行系统布局优化的双层规划模型和混合算法.pdf, 研究了基于出行者路径选择行为的单行道布局优化问题.借助于双层规划思想,以最小化研究区域内的总旅行...
在Android开发中,布局优化是提高应用性能和用户体验的关键因素之一。"布局优化Demo"着重展示了如何通过合理使用`include`、`merge`和`ViewStub`来优化Android界面的布局文件,从而达到减少资源消耗、加快加载速度的...
互联网背景下商业网点布局优化策略的研究已经成为经济发展的新趋势和新课题,特别是在城市商业网点规划领域。漳州市作为研究案例,其城市商业网点专项规划针对中心城区商业网点布局的问题,提出了有效的规划控制与...
【无人机布局优化】基于k-mean聚类的无人机布局优化matlab源码.md
论文研究-技术效率、资本规模对产业空间布局优化的影响.pdf, 本文以区域产业项目迁移为背景, 融合产业资本规模异质性, 建立区域产业空间布局调整优化模型, 利用离散随机...
Android ListView多种布局优化demo,使用了两种优化手段,包括convertView,ViewHolder,对应的我的博客地址是: http://blog.csdn.net/u012320459/article/details/47667869
【布局优化】基于遗传算法求解公交排班问题matlab源码.md
遗传算法是一种模拟自然选择和遗传机制的全局优化技术,它在解决复杂问题,尤其是空间测量仪器的布局优化问题上有着广泛的应用。在这个“遗传算法1.rar_foot8gp_优化算法_布局优化_布站优化算法_遗传算法布局”中,...
基于复合光线追踪的贝叶斯-拟梯度下降镜场布局优化项目源码+资料说明.zip 基于复合光线追踪的贝叶斯-拟梯度下降镜场布局优化项目源码+资料说明.zip基于复合光线追踪的贝叶斯-拟梯度下降镜场布局优化项目源码+资料...
"基于粒子群优化算法的约束布局优化" 基于粒子群优化算法的约束布局优化是指使用粒子群优化算法来解决约束布局优化问题。粒子群优化算法是一种基于群体智能的优化算法,它通过模拟鸟类或鱼类的群体行为来搜索全局最...
数字智库支撑产业布局优化和国企转型的思考.docx
### Android布局优化与Zipalign详解 #### 一、Android布局优化概述 在Android开发中,良好的用户界面设计至关重要。为了实现高效且美观的界面布局,开发者需要了解并掌握各种布局方式及其优缺点。本篇文章将重点...
【布局优化】基于人工鱼群算法实现充电桩布局优化matlab源码 在当前电动汽车日益普及的背景下,充电桩的布局优化成为了一个重要的问题。充电桩的合理布局不仅能够提高充电服务的效率,减少用户等待时间,还能有效...
- 基于GA的车间设施布局优化 - 各设施长宽、功能关系、物流量、搬运成本数据均在Excel中 - 待优化的两个变量分别存放设施的横纵坐标、横纵摆放抉择 - 设置了适应度函数和约束条件 - 完整matlab代码,main直接运行 ...