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

在android布局中,使用include,将另一个xml文件引入,可作为布局的一部分,但在使用include时,需注意以下问题:一、使用include引入如现有标题栏布局block_header.xml,代码如下:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/layout_header"android:layout_width="match_parent"android:layout_height="@dimen/title_bar_h"android:layout_alignParentTop="true"android:background="@color/app_main_color"android:paddingLeft="@dimen/bar_pd_left"android:paddingRight="@dimen/bar_pd_left"android:gravity="bottom" ><ImageButtonandroid:id="@+id/btn_back"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/back"android:background="@drawable/grid_item_selector"android:layout_alignParentLeft="true"android:visibility="invisible" /><TextView android:id="@+id/label_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="@dimen/title_size"android:text="标题栏"android:textColor="@color/white"android:layout_centerHorizontal="true"android:layout_alignBottom="@id/btn_back"android:paddingBottom="@dimen/bar_pd_bottom"/><ImageButtonandroid:id="@+id/btn_setting"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/setting"android:background="@drawable/grid_item_selector"android:layout_alignParentRight="true"android:visibility="invisible" /></RelativeLayout>现在要在activity_main.xml中引入标题栏的布局,代码如下:<RelativeLayout 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"tools:context=".MainActivity" ><includeandroid:id="@+id/bolck_titlebar"layout="@layout/block_header" /><TextViewandroid:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world"android:layout_below="@id/bolck_titlebar" /></RelativeLayout>二、在加载了activity_main.xml的Activity.class中,对block_header.xml的控件的操作【普通控件的使用】对控件的操作和直接在activity_main中布局的控件的操作一致,如设置标题栏的标题文字如下:TextView tvTitle = (TextView) findViewById(R.id.label_title);tvTitle.setText(“title”);【最外层的layout的使用】但要注意的是,如果要对block_header.xml中最外层的布局layout_header进行操作,采用RelativeLayout layoutHeader = (RelativeLayout) findViewById(R.id.layout_header);获得,获得到的对象为null,这是由于我们为include部分设置了id属性。如果我们没有设置id属性时,同样能够按照以上方式对其进行操作,如我们要设置背景色(没有对include设置id的做法):RelativeLayout layoutHeader = (RelativeLayout) findViewById(R.id.layout_header);
layoutHeader.setBackgroundColor(Color.BLUE);如果我们设置了id属性,一些网页介绍通过如下方式获得并对其操作(错误做法):View layout = getLayoutInflater().inflate(R.layout.block_header, null); 
RelativeLayout layoutHeader= (RelativeLayout)layout.findViewById(R.id.layout_header); 
layoutHeader.setBackgroundColor(Color.BLUE);但通过实验,并不能达到我们想要的效果,虽然设置了背景色,但是在activity_main.xml中表现出来的还是没有设置之前的样子,不难解释,我们通过这种方式获得的对象只是block_header.xml中的layout,并不是我们include进activity_main.xml中的layout,当我们在activity_main.xml设置了include的id,block_header.xml的最外层布局已被映射到include上,所以只需对include的视图进行操作,就相当于对block_header.xml最外层的布局进行操作具体如下(对include设置了id的做法):View layoutHeader = findViewById(R.id.bolck_titlebar);layoutHeader.setBackgroundColor(Color.BLUE);所以在对被include的布局的最外层布局进行操作时,需要特别注意,如方法不正确,可能会出现报空指针错误或者设置无效等问题。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

周鸿祎回顾IPO一周年:保持创业心态 看好无线

奇虎360董事长兼CEO周鸿祎 3月19日晚间消息&#xff0c;在奇虎360上市接近一周年之际&#xff0c;奇虎360董事长兼CEO周鸿祎与媒体及个人投资者进行沟通&#xff0c;他表示这一年压力比以前更大&#xff0c;因为在上市光环下依然需要保持创业心态&#xff0c;同时他强调无线和…

《Effective Java》 第二讲:对于所有对象都通用的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 上接《Effective Java》 第一讲&#xff1a;创建和销毁对象 八、覆盖 equals 时请遵守通用约定 1. 自反性&#xff1a;对于任何非空的引…

linux删除文件操作

linux删除文件夹命令 在用Linux的时候&#xff0c;有时候要删除一个文件夹&#xff0c;往往会提示次此文件非空&#xff0c;没法删除&#xff0c;这个时候&#xff0c;必须使用rm -rf命令。 实例一&#xff1a; rm -rf /var/log/httpd/access 将会删除/var/log/httpd/access目录…

Python 运算符重载

https://www.cnblogs.com/hotbaby/p/4913363.html转载于:https://www.cnblogs.com/changbaishan/p/9668720.html

python爬取elasticsearch内容

我们以上篇的elasticsearch添加的内容为例&#xff0c;对其内容进行爬取&#xff0c;并获得有用信息个过程。 先来看一下elasticsearch中的内容&#xff1a; {"took": 88,"timed_out": false,"_shards": {"total": 5,"successful…

创业必经之路——Paul Graham创业曲线

导读&#xff1a;国外媒体avc.com近日发表一篇文章《The Startup Curve》&#xff0c;文中谈到创业者都处于Paul Graham创业曲线中各个阶段&#xff0c;不要一味的畏惧失败&#xff0c;要多倾听客户反馈并从中寻找制胜的信息。总而言之&#xff0c;不畏艰难即可成功。以下为文章…

Java:对象的强、软、弱和虚引用

见&#xff1a;http://zhangjunhd.blog.51cto.com/113473/53092 maven/Java/web/bootstrap/dataTable/app开发QQ群&#xff1a;566862629。希望更多人一起帮助我学习。 1&#xff0e;对象的强、软、弱和虚引用在JDK 1.2以前的版本中&#xff0c;若一个对象不被任何变量引用&am…

java注解:@Deprecated(不建议使用的,废弃的);@SuppressWarnings(忽略警告,达到抑制编译器产生警告的目的)

java注解&#xff1a;Deprecated(不建议使用的&#xff0c;废弃的), SuppressWarnings(忽略警告&#xff0c;达到抑制编译器产生警告的目的)Deprecated可以修饰类、方法、变量&#xff0c;在java源码中被Deprecated修饰的类、方法、变量等表示不建议使用的&#xff0c;可能会出…

Mysql 替换字段的一部分内容

UPDATE 表名 SET 字段名 REPLACE( 替换前的字段值, 替换前关键字, 替换后关键字 ) WHERE 字段名 REGEXP "替换前的字段值"; 例子&#xff1a; UPDATE user SET mobile REPLACE( head_img, "http://7xswdm.com1.z0.glb.clouddn.com", "http://qiniu-i…

聊聊3种最常见的响应式设计问题

响应式设计方法对开发者非常有用&#xff0c;因为它使我们的内容在各种设备上广为传播。不用保留几个独立版本的网站&#xff0c;也可以摒除诸如缩放和流式布局这些方法的弊端。 缩放、流式布局与响应式 这些术语容易造成混淆&#xff0c;设计师常常错误地交替互用。实际上&…

PV、TPS、QPS是什么

pv 是指页面被浏览的次数&#xff0c;比如你打开一网页&#xff0c;那么这个网站的pv就算加了一次&#xff1b;tps是每秒内的事务数&#xff0c;比如执行了dml操作&#xff0c;那么相应的tps会增加&#xff1b;qps是指每秒内查询次数&#xff0c;比如执行了select操作&#xff…

AOP原理解析及Castle、Autofac、Unity框架使用

转自&#xff1a;https://www.cnblogs.com/neverc/p/5241466.html AOP介绍 面向切面编程&#xff08;Aspect Oriented Programming,英文缩写为AOP&#xff09;&#xff0c;通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 AOP是OOP的延续&#xff0c;是软件…

bootstrap validator 提供了哪些验证函数

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 目前提供的校验方法有&#xff1a; "notEmpty" : "不能为空", "password" : "请输入正确的密码&q…

帕累托分布(Pareto distributions)、马太效应

什么是帕累托分布 帕累托分布是以意大利经济学家维弗雷多帕雷托命名的。 是从大量真实世界的现象中发现的幂次定律分布。这个分布在经济学以外&#xff0c;也被称为布拉德福分布。 帕累托因对意大利20%的人口拥有80%的财产的观察而著名&#xff0c;后来被约瑟夫朱兰和其他人概括…

两个class写在同一个java文件中

第一种&#xff1a; 一个public类&#xff0c;多个非public类&#xff0c;例如&#xff1a;public class A&#xff5b;&#xff5d;class B&#xff5b;&#xff5d;第二个class前面不能加public。 第二种&#xff1a; 第二种是内部类&#xff0c;写在公共类体里面的&#xff…

微信小程序的一些数据调用方式

1.模板数据的调用 一张图了解一下在wxml页调用预先定义好的模板&#xff1a; 可以看到上面调用了两个模板&#xff0c;数据调用却是不同的&#xff0c;obj是一个对象&#xff0c;对象内包含多个键值对形式的数据&#xff1b; tabbar是一个一维数组&#xff0c;每个数组项又都是…

手机厂商探路互联网:硬件高利润时代已成历史

华为消费者业务集团CEO兼终端公司董事长余承东近日出席“2012年全球移动互联网大会”期间证实&#xff0c;华为计划与奇虎360合作推出一款智能手机。 余承东表示&#xff0c;华为终端将尝试与多家互联网公司就智能手机业务展开合作&#xff0c;但他未透露与奇虎360合作的更多细…

解决:按截图 ctrl+alt+a QQ聊天窗口就自动最小化(QQ以外的可以截图)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、问题如题 &#xff0c;想截图QQ聊天记录都不行 二、 解决方法&#xff1a; 如图找到QQ截图按钮&#xff0c;点击下拉倒三角&…

数据库备份DBS商业化发布

数据库备份DBS商业化发布将在2018年7月11日 15:00-16:00直播&#xff0c;敬请关注&#xff01; 数据库备份DBS为数据库提供连续数据保护、低成本的备份服务。 它可以为多种环境的数据提供强有力的保护&#xff0c;包括企业数据中心、其他云厂商及公共云。数据库备份提供数据备份…

堡垒机(跳板机)

堡垒机&#xff08;跳板机&#xff09;&#xff1f;现在一定规模互联网企业&#xff0c;往往都拥有大量服务器&#xff0c;如何安全并高效的管理这些服务器是每个系统运维或安全运维人员必要工作。现在比较常见的方案是搭建堡垒机环境作为线上服务器的入口&#xff0c;所有服务…