目录(?)[-]

  1. xml控件代码重用include
  2. xml控件代码重用merge
  3. 横屏和竖屏landsacpe portrait

xml控件代码重用:include

如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式。例如定义my_button.xml如下

<?xml version="1.0" encoding="utf-8"?> 
<Button xmlns:android="http://schemas.android.com/apk/res/android" 
    android:textColor="#FF0000" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" />

在布局中,我们将重复使用到这段代码,如下处理:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout … …" > 
    <include android:id="@+id/include_one" 
        layout="@layout/my_button" />  <!-- 我们可以增加某些属性,例如android:id -->
    <include  android:id="@+id/include_two"    
        layout="@layout/my_button" 
        android:text="Happy"  />  <!-- 测试,不是所有的属性增加都是有效,例如android:text,需要通过id获取在代码中重置 -->
</LinearLayout>

我们不仅可以引用重复代码,还可以对属性进行增加和修改。但是增加和修改受到某些限制,有时并不起效果,这点必须要注意。

如果代码中含有多个控件,根据XML的格式,我们不可以平行地摆放多个控件,很简单,将它们放置在layout中就可以,例如:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout …… > 
    <View1 …… /> 
    <View2 …… /> 
       ……. 
</LinearLayout>

xml控件代码重用:merge

如果我们有多个控件,将他们放置在某种布局的的layout中。那么回出现layout的嵌套。这种嵌套有时是没有必要的,例如将一个LinearLayout放置在LinearLayout,这会降低代码的效率。有时我们并不希望在重用代码中就设定布局格式,这时这种方式就不合适。对于这多种控件,重复代码的xml文件,可以使用merge,如下:

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

在进行代码合并时,系统会去掉merge。

横屏和竖屏:landsacpe & portrait

为了实现美观,横屏和竖屏可能会采用不同的排版方式,可在layout-land/,layout-port/中进行设置,而layout/则是缺省的。即使我们设置了layout-land/和layout-port/,我们仍应设置缺省的layout/,因为还有一种很少使用的layout-square,即使我们同时也设置了这种少有的方形,仍应当将缺省的进行设置。因为我们不清楚具体运行应用的android版本,有没有新的类型出现,设置缺省布局是最保险的方式,此外也可以避免某种情况,无法匹配资源变更,必须采用缺省。具体见Pro Android学习笔记(四):了解Android资源(下)的最后部分“资源和配置的变更”。

有些情况,我们需要强制横屏或者竖屏,而不是根据重力感应器或者陀螺仪这里传感器来监测手机的实际摆放情况。例如图片播放或者视频播放。即时我们在XML中设置为android:orientation="vertical",仍可以在代码中强制设置方向:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    ... ... 
}

下面是例子,左图是普通情况,右图在代码中强制设置方向为横屏。

相关链接: 我的Android开发相关文章

转载于:https://www.cnblogs.com/blongfree/p/5047952.html

【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge相关推荐

  1. 【转】 Pro Android学习笔记(九一):了解Handler(5):组件生命

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 对于activity,消息是在OnCrea ...

  2. Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    xml控件代码重用:include 如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式.例如定义my_button.xml如下 ...

  3. 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout...

    目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...

  4. Pro Android学习笔记(三三):Menu(4):Alternative菜单

    什么是Alternative menu(替代菜单) 举个例子,Activity显示一个文本文件.如果用户想对文本文件进行编辑,Activity不提供编辑能力,但可由其他activity或者其他应用提供 ...

  5. 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner

    目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...

  6. Pro Android学习笔记(七七):服务(2):Local Service

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Local Service的目的是更容易实 ...

  7. Pro Android学习笔记(一五五) 传感器(5) 磁场传感器和方位(上)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 文章转载 ...

  8. Pro Android学习笔记(一五五):传感器(5): 磁场传感器和方位(上)

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei. 磁场传感器(Magne ...

  9. Pro Android学习笔记 四八 ActionBar 1 Home图标区

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Acti ...

最新文章

  1. Sci-Hub重生了,这回用上了分布式网络
  2. linux 命令访问url: curl http://www.baidu.com/index.html
  3. C语言: 函数调用的开销
  4. sketch-a-net_Adobe XD,Sketch,Figma,InVision-如何在2020年选择最佳设计软件
  5. 【OSChina-MoPaaS应用开发大赛】豪美创新后台业务管理系统
  6. actor akka_如果您仍在使用同步,则应改用Akka Actor-这就是为什么
  7. 开机自动启动_工控机断电恢复后自动开机的设置方法
  8. 智能优化算法应用:基于GWO优化的最小交叉熵图像多阈值分割 - 附代码
  9. 网页设计Web尺寸规范
  10. VMware虚拟机中Ubuntu16.04系统下通过MVS运行海康威视工业相机
  11. logistic回归分析优点_SPSS教程|二分类logistic回归及SPSS操作
  12. 推荐几款精美耐看的xshell配色方案
  13. cmd命令打开文本文档_win7定时关机命令 【处置技巧】
  14. 分布式系统关注点——如何去实施「负载均衡」? 1
  15. 全球游戏收入将随着电影电视改编作品的不断增多而达到惊人水平 | 美通社头条...
  16. 锐龙5 6600H什么水平 r5 6600h核显相当于什么显卡
  17. 通过Dig来学DNS
  18. Elasticsearch 为什么会产生文档版本冲突?如何避免?
  19. CString的彻底解析
  20. Win10更新、重装后 触摸板无法关闭

热门文章

  1. vs2010的sdf文件和ipch文件夹
  2. Bash字符串处理(与Java对照) - 19.查找字符的位置
  3. React-Router面试题汇总
  4. 深入react技术栈(11):样式处理
  5. 前端学习(3273):js中this的使用二
  6. 前端学习(3224):字符串形式
  7. 前端学习(3104):react-hello-react案例
  8. [html] 说说你对Media Source Extensions(MSE)的理解,它解决了什么问题呢?
  9. [js] 使用ajax轮询接口有什么优缺点?
  10. 前端学习(2825):vs开发小程序的插件