Android开发之merge结合include优化布局

merge结合include优化android布局,效果不知道,个人感觉使用上也有很大的局限,不过还是了解一下,记录下来。

布局文件都要有根节点,但android中的布局嵌套过多会造成性能问题,于是在使用include嵌套的时候我们可以使用merge作为根节点,这样可以减少布局嵌套,提高显示速率。

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android" >

 <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="张三" />

 <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="李四" />

 <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="王五" />

</merge>

上面的界面在显示的时候会自动嵌套到下面的文件中。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="horizontal"
 tools:context="com.example.viewstub.MainActivity" >

 <include layout="@layout/top"/>
 <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/hello_world" />

 <Button
  android:id="@+id/toggle"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:onClick="onClick"
  android:text="显示/隐藏" />

 <ViewStub
  android:id="@+id/vs"
  android:layout_margin="50dp"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:inflatedId="@+id/inflated_id"
  android:layout="@layout/view_stub_layout" />

</LinearLayout>

我为什么说这个局限性比较大呢?因为merge中的空间显示的使用会采用主布局文件的方式来显示,比如我这里主布局是linearlayout且是水平排列,那么merge中的元素显示出来之后也是水平排列,可是我如果想让merge中的元素垂直排列呢?抱歉,做不到。

原文链接:http://blog.csdn.net/u012702547/article/details/47133647

以上就是本文的全部内容,希望对大家学习Android软件编程有所帮助。

(0)

相关推荐

  • 解析android中include标签的使用

    在一个项目中我们可能会需要用到相同的布局设计,如果都写在一个xml文件中,代码显得很冗余,并且可读性也很差,所以我们可以把相同布局的代码单独写成一个模块,然后用到的时候可以通过<include /> 标签来重用layout代码.app_title.xml: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?><RelativeLayout android:id="@+id/titl

  • Android控件之ImageView用法实例分析

    本文实例讲述了Android控件之ImageView用法.分享给大家供大家参考.具体如下: ImageView控件是一个图片控件,负责显示图片. 以下模拟手机图片查看器 目录结构: main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

  • Android编程之include文件的使用方法

    本文实例分析了Android编程之include文件的使用方法.分享给大家供大家参考,具体如下: 记得很久以前,听一位大神说,程序员都很懒,不懒惰的程序员不是好程序员,当时不明白什么意思.后来慢慢的懂得了它的意思,好的程序员不要做重复的工作. 我们在android的布局文件中,常会遇到一些相同的布局,每个页面都写,一是比较麻烦,二是一旦有修改还得改多个文件.这个时候我们就可以用到include了. 非常简单的使用,下面看代码 include的文件scollandlisttitle.xml <?x

  • Android开发中include控件用法分析

    本文实例讲述了Android开发中include控件用法.分享给大家供大家参考,具体如下: 我们知道,基于Android系统的应用程序的开发,界面设计是非常重要的,它关系着用户体验的好坏.一个好的界面设计,不是用一个xml布局就可以搞定的.当一个activity中的控件非常多的时候,所有的布局文件都放在一个xml文件中,很容易想象那是多么糟糕的事情!笔者通过自身的经历,用include控件来解决这个问题,下面是一个小例子,仅仅实现的是布局,没有响应代码的设计. user.xml文件内容如下: <

  • Android中使用include标签和merge标签重复使用布局

    尽管Android提供了各种组件来实现小而可复用的交互元素,你也可能因为布局需要复用一个大组件.为了高效复用完整布局,你可以使用<include/>和<merge/>标签嵌入另一个布局到当前布局.所以当你通过写一个自定义视图创建独立UI组件,你可以放到一个布局文件里,这样更容易复用. 复用布局因为其允许你创建可复用的复杂布局而显得非常强大.如,一个 是/否 按钮面板,或带描述文本的自定义进度条.这同样意味着,应用里多个布局里共同的元素可以被提取出来,独立管理,然后插入到每个布局里.

  • Android AutoCompleteTextView控件使用实例

    使用要点如下: 1.利用ListAdapter(一般使用ArrayAdapter)为AutoCompleteTextView提供数据,若有需要还可以重载getView()以自定义列表项的显示方式.这一步同ListView.2.如果需要根据输入内容进行动态提示,那么adapter需要实现Filterable接口,重载getFilter()函数实现提示算法.getFilter()需返回Filter对象,该对象包含至少两个方法:performFiltering()在后台执行过滤,publishResu

  • Android控件ListView用法(读取联系人示例代码)

    示例代码: 这是一个读取联系人的代码: 复制代码 代码如下: package com.ui.domain; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.database.Cursor; import android.database.DataSetObserver; import android.graphics.Color; import andro

  • Android控件系列之TextView使用介绍

    学习目的: 1.了解在Android中如何使用TextView控件 2.掌握TextView控件重要属性 作用:TextView类似一般UI中的Label,TextBlock等控件,只是为了单纯的显示一行或多行文本 上图的XML布局如下: 复制代码 代码如下: <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_c

  • android使用include调用内部组件的方法

    本文实例讲述了android使用include调用内部组件的方法.分享给大家供大家参考.具体如下: 例子一: sublayout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical&

  • Android控件之EditView常用属性及应用方法

    EditView类继承自TextView类,EditView与TextView最大的不同就是用户可以对EditView控件进行编辑,同时还可以为EditView控件设置监听器,用来判断用户的输入是否合法. 以下为EditView常用属性及对应方法说明

随机推荐