`
alp1014
  • 浏览: 25967 次
  • 来自: 北京
社区版块
存档分类
最新评论

Android 布局文件的性能--使用include标签重用Layout---转

阅读更多
Re-using Layouts with <include/>

尽管Android提供了很多种小的组件可以重用,我们还需要自定义一些稍微复杂一点的小组件进行重用。我们可以使用<include/> and <merge/> 标签来对当前的layout嵌入一些其他的layout.

在创建一个稍微复杂一点的layout时,重用layout是个很给力的方法。比如我们需要一个YES/NO的控制栏,包含文字提示的Progress bar。这意味着我们可以在很多地方重用那些自定义的layout.
Create a Re-usable Layout [创建一个可重用的Layout]
如果你已经知道哪些组件是会重用的,我们可以创建一个XML并且定义这个layout。
例如:下面定义了一个需要在每个Activity都需要显示的titlebar.xml
<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>  


Use the <include> Tag [使用<include>标签]
下面示例了一个包含了titlebar控件的布局:
<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>  

我们可以重写任何include里面的属性,例如:
<include android:id=”@+id/news_title”  
         android:layout_width=”match_parent”  
         android:layout_height=”match_parent”  
         layout=”@layout/title”/>  

Use the <merge> Tag [使用<merge>标签]
某些时候,自定义可重用的布局包含了过多的层级标签,比如我们需要在LinearLayout里面嵌入一个重用的组件,而恰恰这个自定义的可重用的组件根节点也是LinearLayout,这样就多了一层没有用的嵌套,无疑这样只会拖慢程序速度。而这个时候如果我们使用merge根标签就可以避免那样的问题。
例如:
<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>  
这样的话,使用<include>包含上面的布局的时候,系统会自动忽略merge层级,而把两个button直接放置与include平级。
分享到:
评论

相关推荐

    Android中include和merge标签的使用

    总结来说,`include`和`merge`是Android布局设计中的强大工具,通过合理使用它们,开发者可以创建更灵活、高效且易于维护的布局结构。理解并熟练掌握这两个标签的使用,对于提升Android应用的用户体验和开发效率具有...

    android include merge标签

    `include`和`merge`标签是两个非常重要的布局重用工具,它们极大地提高了代码的可维护性和性能。下面将详细阐述这两个标签的功能、用法以及如何结合使用。 首先,`include`标签的作用是允许你在多个布局文件中复用...

    android中include和merge标记的区别和使用

    `include`和`merge`标签是Android XML布局文件中两个非常重要的元素,它们帮助开发者实现布局的重用和优化,提高代码的可维护性和效率。接下来,我们将深入探讨这两个标记的区别和使用方法。 ### `include`标签 `...

    Android中Include的使用

    在Android开发中,`&lt;include&gt;`标签是一种布局重用机制,它允许开发者将一个布局文件嵌入到另一个布局文件中,极大地提高了代码的可维护性和复用性。本篇文章将详细探讨`&lt;include&gt;`标签的使用方法、应用场景以及注意...

    android layout布局分析与优化

    5. **使用&lt;include&gt;标签**:通过&lt;include&gt;标签重用布局文件,减少重复代码。 6. **使用标签**:利用标签解决由include或自定义组合ViewGroup带来的多余层级问题。 7. **使用标签**:在需要动态加载布局时使用,避免...

    android 统一管理布局文件

    1. **使用包含(include)标签**:在Android中,`&lt;include/&gt;`标签允许将一个布局文件嵌入到另一个布局文件中,减少代码冗余。例如,如果多个活动都需要一个通用的头部,可以在`header.xml`中定义这个头部,然后在...

    Android 布局优化

    本文将深入探讨如何利用`include`、`ViewStub`和`merge`标签进行Android布局优化。 首先,`include`标签是一种强大的布局重用机制。在大型应用中,往往有许多相似或重复的布局元素,如导航栏、头部视图等。通过`...

    android布局技巧

    - `&lt;include&gt;`标签允许在一个布局文件中包含另一个布局文件,这对于重复使用的布局组件特别有用。例如,可以在不同的屏幕或场景中多次使用同一个头部或底部导航栏。 - `&lt;merge&gt;`标签主要用于合并多个布局,避免额外...

    Android开发——布局管理

    本文将深入探讨Android布局管理的基本概念、常用布局类型以及如何优化布局性能。 首先,Android提供了几种内置的布局类型,以满足不同设计需求: 1. **线性布局(LinearLayout)**:这是最基础的布局,支持水平或...

    Include和merge标签使用

    首先,`&lt;include&gt;`标签允许我们将一个布局文件插入到另一个布局文件中,这样可以实现布局组件的重用。例如,假设我们有一个通用的头部布局(header.xml)和一个主页面布局(main.xml),在main.xml中我们可以这样...

    Android布局技巧之include、merge与ViewStub标签的巧用

    总结,`include`、`merge`和`ViewStub`是Android布局管理的利器,它们能帮助开发者更有效地组织和优化布局,提高应用性能。理解并合理使用这些标签,可以使UI代码更加整洁,同时减少性能瓶颈。在实际开发中,结合...

    Android应用源码之IncludeDemo.zip

    在Android应用开发中,"IncludeDemo.zip"这个项目很可能是为了演示如何在代码中使用`&lt;include&gt;`标签,这是Android布局复用的一种有效方法。`&lt;include&gt;`标签允许开发者将一个XML布局文件嵌入到另一个布局文件中,从而...

    android中的布局

    以上就是关于Android布局的基本介绍,理解并熟练掌握布局机制是成为一名优秀的Android开发者的关键。通过合理运用各种布局类型和技巧,可以创建出高效、美观且易于维护的用户界面。在实际开发中,还要根据项目需求和...

    新版Android开发教程 笔记6--应用3、4 布局

    例如,使用`&lt;include&gt;`标签可以重用布局,提高代码复用性;而`&lt;merge&gt;`标签则用于减少嵌套布局带来的性能影响。 此外,我们还可能探讨了布局优化技巧,如避免深度嵌套、使用`ViewStub`加载按需显示的视图,以及使用...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    初学android布局实例

    在实践中,还要注意布局性能优化,如避免深度嵌套布局,使用`include`标签重用布局,以及使用`merge`标签减少视图层次。 通过这个实例,初学者不仅可以学习到基本的布局使用,还能了解到Android界面设计的原则和...

    android 布局管理

    4. **使用include标签**:重用相同的布局部分,减少代码重复。 5. **使用merge标签**:在include中使用merge标签,减少嵌套层次,提高性能。 6. **合理使用wrap_content**:避免不必要的计算,尤其是在动态内容的...

    Android布局优化

    **使用`&lt;include/&gt;`标签**:创建可重用的布局组件,通过`&lt;include layout="@layout/titlebar"/&gt;`的方式,在多个地方复用相同的布局,减少代码冗余,同时简化布局管理。 **示例**: ```xml &lt;FrameLayout xmlns:...

    食神摇摇反编译的 布局文件

    10. **性能优化**:通过对布局文件的分析,我们可以发现应用可能采取的性能优化策略,比如使用merge标签减少视图层次,或者使用include标签重用布局。 总的来说,反编译"食神摇摇"的布局文件是一种有效的学习方法,...

Global site tag (gtag.js) - Google Analytics