androidUi优化之--通过include标签来重用布局

本文介绍了如何在Android应用中重用布局,通过使用<include>和<merge>标签可以有效地减少重复代码,提高开发效率。文章详细解释了如何创建可重用的布局文件,并展示了如何在不同的布局中包含和使用这些文件。
通过<include/>来重用布局

虽然Android提供了大量的控件来提供小的可重用的交互元素,但你也需要重用更大的元素,急需要一个特定的布局。为了有效重用完整的布局,你可以使用<include>和<merge/>标签来将另一个布局包含到当前的布局中。

重用布局是非常好强大的,它允许你创建复杂的可重用布局。例如,一个yes/no的按钮面板,或是一个有描述文本的进度条。这意味着布局中任意类型的元素都可以被抽取出来单独处理,然后被包含到每一个布局中。因此,你可以通过编写一个定制的View来创建单独的UI元素,更简单的事在布局中重用其他的布局文件。

一.创建一个重用的布局
如果你知道你想要重用一个布局,创建一个XML布局文件(titlebar.xml):
FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width=”match_parent”
    android:layout_height="wrap_content"
    android:background="@color/titlebar_bg">
 
    <ImageViewandroid:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:src="@drawable/gafricalogo"/>
</FrameLayout>
你应该确切知道根视图在每一个你想重用的布局中该如何显示。

二.使用<include>标签
在每一个你想重用布局的文件中,使用<include/>标签来进行添加,例如:
<LinearLayoutxmlns: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">
 
    <includelayout="@layout/titlebar"/>
 
    <TextViewandroid:layout_width=”match_parent”
              android:layout_height="wrap_content"
              android:text="@string/hello"
              android:padding="10dp"/>
 
    ...
 
</LinearLayout>

你也可以重写包含文件的所有布局属性:
<includeandroid:id=”@+id/news_title”
         android:layout_width=”match_parent”
         android:layout_height=”match_parent”
         layout=”@layout/title”/>
但是,如果你想使用<include>标签来重写布局属性,你必须重写android:layout_height和android:layout_width,使得其他布局属性生效。

三.使用<merge>标签
使用<merge>标签来消除多余的布局层次。
<mergexmlns: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>标签,直接把这两个按钮放置于<include/>标签所处的位置。

原文链接:http://developer.android.com/training/improving-layouts/reusing-layouts.html

(Kriging_NSGA2)克里金模型结合多目标遗传算法求最优因变量及对应的最佳自变量组合研究(Matlab代码实现)内容概要:本文介绍了克里金模型(Kriging)与多目标遗传算法NSGA-II相结合的方法,用于求解最优因变量及其对应的最佳自变量组合,并提供了完整的Matlab代码实现。该方法首先利用克里金模型构建高精度的代理模型,逼近复杂的非线性系统响应,减少计算成本;随后结合NSGA-II算法进行多目标优化,搜索帕累托前沿解集,从而获得多个最优折衷方案。文中详细阐述了代理模型构建、算法集成流程及参数设置,适用于工程设计、参数反演等复杂优化问题。此外,文档还展示了该方法在SCI一区论文中的复现应用,体现了其科学性与实用性。; 适合人群:具备一定Matlab编程基础,熟悉优化算法和数值建模的研究生、科研人员及工程技术人员,尤其适合从事仿真优化、实验设计、代理模型研究的相关领域工作者。; 使用场景及目标:①解决高计算成本的多目标优化问题,通过代理模型降低仿真次数;②在无法解析求导或函数高度非线性的情况下寻找最优变量组合;③复现SCI高水平论文中的优化方法,提升科研可信度与效率;④应用于工程设计、能源系统调度、智能制造等需参数优化的实际场景。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现过程,重点关注克里金模型的构建步骤与NSGA-II的集成方式,建议自行调整测试函数或实际案例验证算法性能,并配合YALMIP等工具包扩展优化求解能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值