早在ITOO中我们觉得页面代码太多而各种抽页面,像公共的按钮、搜索框、表格等,在主页面中只需要写几句代码就可以了,其实语言都是一样的,在安卓的世界中也是可以抽出部分视图的,只不过在安卓的开发环境中,是通过xml中复用代码来实现的而已——include标签。

在最近做的一个互联网项目中,因为我的任务是要做有四个页面的左右滑屏效果,上面的标题和tab条都是一样的,不同的只是左右滑屏时下面的显示内容,所以就抽出两个界面文件,对主界面进行分割。

include标签:

<include layout="@layout/otherlayout"></div>

首先我们先来看分割出来的页面:

teacher_top:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="50dp"android:orientation="vertical" ><LinearLayout style="@style/top_title_style" ><!-- 尖括号的布局 --><LinearLayoutandroid:id="@+id/picture_view_back"android:layout_width="70dp"android:layout_height="fill_parent"android:gravity="center_vertical|center"android:orientation="vertical" ><ImageButtonandroid:layout_width="14dp"android:layout_height="18dp"android:layout_gravity="center_vertical"android:layout_marginLeft="0dp"android:background="@drawable/back" /></LinearLayout><!-- 讲师列表布局 --><TextViewstyle="@style/top_title_word_style"android:text="导师详情" /><LinearLayoutandroid:layout_width="70dp"android:layout_height="28dp"android:gravity="center_vertical|center"android:orientation="vertical" ></LinearLayout></LinearLayout>
</LinearLayout>

效果图:

滑屏tab标题栏

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="50dp"android:background="@drawable/bottom_bar"android:orientation="horizontal" ><!-- 个人介绍 --><LinearLayoutandroid:id="@+id/id_tab_personinfo"android:layout_width="0dp"android:layout_height="fill_parent"android:layout_weight="1"android:gravity="center"android:orientation="horizontal" ><ImageButtonandroid:id="@+id/id_tab_personinfo_img"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#00000000"android:clickable="false"android:src="@drawable/back" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="个人介绍"android:textColor="#ffffff" /></LinearLayout><!-- 课程 --><LinearLayoutandroid:id="@+id/id_tab_course"android:layout_width="0dp"android:layout_height="fill_parent"android:layout_weight="1"android:gravity="center"android:orientation="horizontal" ><ImageButtonandroid:id="@+id/id_tab_course_img"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#00000000"android:clickable="false"android:src="@drawable/back"  /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="课程"android:textColor="#ffffff" /></LinearLayout><!-- 工作经历  --><LinearLayoutandroid:id="@+id/id_tab_workexperience"android:layout_width="0dp"android:layout_height="fill_parent"android:layout_weight="1"android:gravity="center"android:orientation="horizontal" ><ImageButtonandroid:id="@+id/id_tab_workexperience_img"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#00000000"android:clickable="false"android:src="@drawable/back" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="工作经历"android:textColor="#ffffff" /></LinearLayout><!-- 评价 --><LinearLayoutandroid:id="@+id/id_tab_evaluate"android:layout_width="0dp"android:layout_height="fill_parent"android:layout_weight="1"android:gravity="center"android:orientation="horizontal" ><ImageButtonandroid:id="@+id/id_tab_evaluate_img"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#00000000"android:clickable="false"android:src="@drawable/back" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="评价"android:textColor="#ffffff" /></LinearLayout>
</LinearLayout>

效果图:

用include标签拼接好的主界面:

teacher_main

<?xml version="1.0" encoding="utf-8"?>
<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="vertical" ><include layout="@layout/teacher_top" /><include layout="@layout/toptab_bar" /><android.support.v4.view.ViewPagerandroid:id="@+id/id_viewpager"android:layout_width="fill_parent"android:layout_height="0dp"android:layout_weight="1" ></android.support.v4.view.ViewPager>
</LinearLayout>

效果图:

如果客户想要标题栏换个颜色或者改变一下字体,这样抽象的只需要改一处的代码而不是四个页面的代码都需要改。非常简单的一个标签,就达到了代码的复用性可读性和可维护性。所以在编程的世界里,尽情的抽象吧!

Android——layout中使用include复用模块相关推荐

  1. android布局中使用include及需注意点

    在android布局中,使用include,将另一个xml文件引入,可作为布局的一部分,但在使用include时,需注意以下问题:一.使用include引入如现有标题栏布局block_header.x ...

  2. Android模块间相互调用,处理Android Studio中相互依赖的模块之间的公共依赖关系

    假设我的Android Studio项目中有2个模块: ---- :A ---- :B 其中:A依赖于B: ---- :A ---> + :B ---- :B A和B都需要库L:使事情复杂化 - ...

  3. 在android布局中使用include和merge标签

    在我们开发Android布局时,经常会有很多的布局是相同的,这个时候我们可以通过<include/>和<merge/>标签实现将复杂的布局包含在需要的布局中,减少重复代码的编写 ...

  4. Android dataBinding中使用include

    DataBinding下 使用include包括对象的传递,事件的监听. include的布局如下: custom_home.xml <layout xmlns:android="ht ...

  5. android开发中dx.jar,Android Studio:无法加载dx.jar

    当我在Android Studio中运行我的模块时,我收到此错误: 错误:Android Dex:[GradleDevBuild]无法加载dx.jar 我已经无休止地搜索了一个在线解决方案,但一切都与 ...

  6. android layout include merge,Android 布局优化之include与merge

    Android 官方提供了三个用来优化布局的标签,分别是include.merge与ViewStub,其中ViewStub是动态加载视图到内存,大家可以查阅:Android UI布局优化之ViewSt ...

  7. [转载]Android Layout标签之-viewStub,requestFocus,merge,include

    定义Android Layout(XML)时,有四个比较特别的标签是非常重要的,其中有三个是与资源复用有关,分别是<viewStub/>, <requestFocus />, ...

  8. Android Layout标签之-viewStub,requestFocus,merge,include

    定义Android Layout(XML)时,有四个比较特别的标签是非常重要的,其中有三个是与资源复用有关,分别是<viewStub/>, <requestFocus />, ...

  9. 如何单独编译Android源代码中的模块

    第一次下载好Android源代码工程后,我们通常是在android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了.以后如果我们修改了And ...

最新文章

  1. 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法
  2. 贪心 Codeforces Round #300 A Cutting Banner
  3. HUST 1555 A Math Homework
  4. 网络:301和302
  5. how is sales pipeline retrieved from backend
  6. Azure与Scott Guthrie:Azure安全中心和基于角色的访问控制
  7. Android之如何用cmd方法查看logcat
  8. iOS -转载-开发之个人开发者账号转公司开发者账号
  9. 【数据结构----笔记2】查找算法之【哈希查找或散列查找】
  10. jquery按名称选择_jQuery按类别选择
  11. Web服务器基础详解
  12. 【 js 基础 】Javascript “继承”
  13. DORADO实现动态拼装查询条件
  14. 一个查询语句各个部分的执行顺序
  15. StringUtil工具类 之 字符串长度截取函数
  16. Logo设计技巧和方法
  17. C#监听关注或取消关注微信服务号并获取openid和unionid
  18. 历史上各大帝国面积排行榜
  19. 若菜光个人小档案(dambolo)
  20. Qt5.4.1 + VS2008 环境搭建

热门文章

  1. Python扑克牌程序
  2. el-input样式修改,边框,提示文字
  3. 基于TensorFlow实现的CNN神经网络 花卉识别系统Demo
  4. Xmanager远程连接Linux服务器图形界面
  5. 一度智信:如何提高拼多多商品排名?
  6. 省政协委员、南京大学人工智能学院院长周志华: 科研学习探索最重要的是“兴趣”和“勤奋”...
  7. 利用HOOKAPI拦截文件操作
  8. 树莓派8:树莓派控制继电器
  9. 2022年最新整理,动力节点Java自学全套资源
  10. 数据库专题训练数据库应用系统开发